{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2b7da21-f761-4b32-9b9e-f8985e2f8dc9",
   "metadata": {},
   "source": [
    "Chapter 16\n",
    "# NumPy数组规整\n",
    "Book_1《编程不难》 | 鸢尾花书：从加减乘除到机器学习  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a963642f-ed29-4266-85fc-2e3815b08edc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入包\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import os\n",
    "\n",
    "# 如果文件夹不存在，创建文件夹\n",
    "if not os.path.isdir(\"Figures\"):\n",
    "    os.makedirs(\"Figures\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a127334-ef1a-4830-ba85-aa725c4c0e4b",
   "metadata": {},
   "source": [
    "## 定义可视化函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "14ac1471-23c1-4f10-af2d-fb89b126430e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def visualize_2D(array, title, vmax, vmin):\n",
    "    \n",
    "    fig_width  = math.ceil(array.shape[1] * 0.5)\n",
    "    fig_length = math.ceil(array.shape[0] * 0.5)\n",
    "    \n",
    "    fig, ax = plt.subplots(figsize=(fig_width, fig_length))\n",
    "    # 注意，seaborn.heatmap() 目前只能接受2D数组\n",
    "    # 本书中，一维数组可视化时用圆圈\n",
    "    # 可视化时，只有二维、三维数组用方块\n",
    "    \n",
    "    sns.heatmap(array, \n",
    "                vmax = vmax,\n",
    "                vmin = vmin,\n",
    "                annot = True,      # 增加注释\n",
    "                fmt = \".0f\",       # 注释数值的格式\n",
    "                square = True,     # 热图方格为正方形\n",
    "                cmap = 'RdYlBu_r', # 指定色谱\n",
    "                linewidths = .5,   # 方格线宽\n",
    "                cbar = False,      # 不显示色谱条\n",
    "                yticklabels=False, # 不显示纵轴标签\n",
    "                xticklabels=False, # 不显示横轴标签\n",
    "                ax = ax)           # 指定绘制热图的轴\n",
    "    \n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')\n",
    "\n",
    "# 定义绘制一元数组可视化函数\n",
    "\n",
    "def visualize_1D(array, title, vmax, vmin):\n",
    "    fig, ax = plt.subplots()\n",
    "    \n",
    "    cmap = plt.colormaps.get_cmap(\"RdYlBu_r\")\n",
    "    \n",
    "    array_norm = (array - vmin) / (vmax - vmin)\n",
    "\n",
    "    colors = cmap(array_norm)\n",
    "\n",
    "    for idx in range(len(array)):\n",
    "\n",
    "        circle_idx = plt.Circle((idx, 0), 0.5, facecolor=colors[idx], edgecolor = 'w')\n",
    "        ax.add_patch(circle_idx)\n",
    "        ax.text(idx, 0, s = \"{:.1f}\".format(array[idx]),\n",
    "                horizontalalignment = 'center',\n",
    "                verticalalignment = 'center')\n",
    "\n",
    "    ax.set_xlim(-0.6, 0.6 + len(array))\n",
    "    ax.set_ylim(-0.6, 0.6)\n",
    "    ax.set_aspect('equal', adjustable='box')\n",
    "    ax.axis('off')\n",
    "    fig.savefig('Figures/' + title + '.svg', format='svg')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cb1204b2-1f67-47e5-8b6b-890e797d193d",
   "metadata": {},
   "source": [
    "## 堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "51ab495d-f96b-4f57-807a-e0145fa142de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a1 = np.arange(1, 5 + 1)\n",
    "a1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "fcbb647c-82cc-42b6-9a85-4180976ee445",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a1, 'a1，一维', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8fa6e56c-ea2f-4aa7-ba3c-1586f1397adc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-5, -4, -3, -2, -1])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a2 = np.arange(-5, 0)\n",
    "a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "d27cd90d-cc98-4a0b-9c92-edfa2716ec3b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAB0CAYAAAAYYzEHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArnUlEQVR4nO3deXgb1bk/8O+ZGS2WZUm25TWJlyRksUMIWxJCScIWCjdtKbS/p4SWcgmlQOGW0nuhlFJK6UZvgVtoCXtZQxcoUChpQgMkkISEJaudxElsx068RbYl2Za1zJzz+0OWYjleZEcazUjn8zz8IUWaOX6RNO+8ZyOMMQaO4ziO4zKWkOoGcBzHcRyXWjwZ4DiO47gMx5MBjuM4jstwPBngOI7juAzHkwGO4ziOy3A8GeA4juO4DMeTAY7jOI7LcDwZ4DiO47gMx5MBjuM4jstwPBngOI7juAzHkwGO4ziOy3A8GeA4juO4DMeTAY7jOI7LcDwZ4DiO47gMx5MBjuM4jstwPBngOI7juAzHkwGO4ziOy3BSqhuQCIpCAQCiGM5tZJmi292PY8f64PUGEAopAACDQYTNZkJBQTZyHVmQJGHY92caRaEghEAQCABAVig8fUF0ev3o8YUgD8RHEgXkWAzIt5lhzzZCGogXpQyMscyNH2UgBBAIiT7uC8jw+kPwBRUolAEARIHAYhRhMxuQbZIgDsSbMgbGEH2caShjIAAIOR6PgELRL1OEFAolHD6IBDCIArIkASZRiMabMQaG4/HPNIyFA0QGxUNhgMIYKAPC0QEICAQCiIRAJLGvH/x+LjPpMhmgAz+ugkDQ2tqDHbtasXffMdTuPYb6hi54PH4MfL5HRAhgt5sxtTIPVbMLUDWrAKfNLUFJSU7M8dPR4L+vvduHmsZuHDjiQd0RN5rae+H1BeOKn81iRFmRFTMmOzBjsh1VFbkoyrWkf/wGgiMQgm5fEI2dfTjS3Y8j7n60e/3wBRWMET4QABajiCKbGZMdWZicm4WK/GzkWowxx09Hgy8+fSEFnf0hdPtD6PLL8AZlBJWxohdmFAlsRgl5Zgm5ZgPyswzINohpf3Eb/PfJNJw4BShDUKEIUQYa53EEAAaBwCgKMAkEJlGAJJC0jx83PMLYWD/72hG5g9+1uw3vfdCAjR81ornZk9BzTJlix+IvVOCCpZWYe2oxgPSpGCg0fAdWe7gbm/a0YkttB1pcfQk9R6kzG+dUFeLcOSWoKs8FQ/rc8VLKAAIc7vRhT4sHta1euPqCCT2HM9uIqhIb5pTaUZ5vAVj6JFWRCoCrP4SjvQG09gbRO1C1SxSrQUSJ1YhJVhOcWYa0qhhEfqoDlMEnhysncoJ/viVCkCUJsEjhBAHgSUGm0HwyoCgUoiigs8uHv766B6+/WQuXy6fKuZ1OC674ShW+/rU5yM+zRNuiJwqlEAUB3T0B/GNzI9Zsa0KXN6DKufNsJly2oAxfOqcCuTmmaFv0hFIGQSDo8Yewub4T2xq74PXLqpzbZpawoCIP50zNR47ZEG2LnlDGIBACv0xx0O1Dg9sPvxLvvevJMYsCpjrMmOawwCwJ0bboCWMMhBAolKEnpKBXVhBn4eSkiQSwSiJyDCLEgYoBTwzSl2aTgcgP36H6Ljz+1DZs2NAY7btWmyQKWLKkAjd+Zz6mTc3TxY9ypI2NbT14cV0dNte0Rfuu1SYKBIuqi/GtZTNQUZyjj/gNXDjavH6sq21HTasHKQofBAJUl9ixrKoIxTazLi5qkQuHJyCjxtWHlt7AmF0nyUIAlFpNqHZmw26SdHFRi7QxqFB4ggp8Kfrti7CIAuxGEUZR0EX8uPHTZDLAGEN7ey8efexj/GvdgTH7r9VCCPDFZafg1psXoqjIqtkvBGMMx9x+PLtmH97fcVRT8Tt/3iRcd+ksFDjMmo6fuz+ENTVt2NHsTtlFbCgCYN4UBy6tLoYjy6Dp+PXLFLuP9aKpR50qVLzKckw4tcCKLEnQdPwUBriDMvrk1CYBQ2VLAhxGKWYAIpceNJUMyDIFwPDYE9vw0uqdA4+1R5IEfHPFabj5u/MBkOishFRTFAoG4Pm1+/HaxnrIatUTx0kSCa5cPBXfvmTmwGONxG/g1n9tbRs2HnBB0c5XI4ZICBaf4sQlVQNjWjRSZYkMfNzj6kNdl08zSdRQBMCMPAvmOLMBaGdMQeSn2B1U4E3wWIpEsxlEOIwiAJ4UpAvNJAOMMezddwz33LceDQ3dqW5OXCorc/GLn12EWTOdKf9CMMZw4KgHv31lB5o6elPalniVFVpx51WnY/okmybid9Tdj1c+bUaHxu5mR1KYY8JVZ03BJEeWJuLXHZCxrdWLnqC2L2QROUYRC0pscJgkTcQvSBk6/TJC2vhJHpOBEOSbJRgFkvL4cScv5clApP/48Se34ZnnPoOi0bvZkYgiwcprz8SNN8xPSV94pP/4hXX7sXr9wei0Pr0QBIIVF07HNctmpqQvPNL/ua62Dev3d6RsXMBECQS4cGYhllUVp6QvN3LOGlcv9nZqtxowEgJgdr4F1U5rSuPnDsjwaLwaMBK7QYRDJ2MxuJGlNBmQZQpZVnDXPe9iw8bGVDUjIZYursSv7r8IkkFUreytKBQhheHXqz/Hlpp2Vc6ZLIuqi/CjFWfAIBLVZmwolEGhDKs/aUJNq1eVcyZLdYkNK84ugygQ1boN6MCiNltbPWjpTewUS7WVWo1YUGKHQNTrNogsluTyy+hP8QDBk5UlCnCapZjFozh9SVkyIMsUrk4fbr3tbRyq70pFExJu+rQ8PPLwcjjzLUkfRyArFN09Adz99DY0tvck9VxqqSjOwS9XzkdujinpCZVCGXr8ITy9uQHtKk21TLZimxkrF1Ugx2xIekJAGYNfpvjwiBtenXQLjMVmFHHeZAfMkpD0hCAySLDDH0JIb+WoERgEgkKzgQ8u1KmUJAOyTNHS6sX1N76h2poBanE6LXj68ctRWmJLWkIgKxTt3T78cNUW1dYMUEuezYQHbzoHRbmWpCUECmXo9gWxauMh1dYMUIvNLOGmxdOQazEmLSGgjKEvpOCDJrdqawaoxSwKWFrmQLZBTFpCwBiDzBja+0OqrRmgFpEARVkGSISPI9Ab1ZOBSCJw3Q2vo6urX81TqyYvLwvPPvnVpCQEkUTgB3/cDLfOS7MjcViNePh7i5KSEEQSgT9uOITeQHolAhFWk4TvLUlOQhBJBN5v6kYg3a5kA0wiwflluUlJCCKJQFt/SHfjU+IlEKCYJwS6o+qcrkjXwPU3vpG2iQAAdHX1h6senb6ELpSkDHQN/HDVlrRNBADA3RvED1dtQXdPILoEdSJEugZWbUzfRAAAegMyVm08hB5/KKELTUW6Bj5ocqdtIgAAAYWFqx4yjU6XTIRI10B7GicCAEAH/kaFHZ8uyWmfaskApQyyrODW295Ou66B4bhcPvzXD96GHKIJGeFPGUNIYbj76W1p1zUwnC5vAHc/sw0yZQn5QWYsPFjw6c0Nadc1MByvX8YzmxsHdkRMTPwoAz48kn5dA8PxK+HxECxBF7TIYMEOf/p1DQwnMh6CgScEeqFaMiAIBHfd827aDBaMx8FDXfjxPe8mZLqhQAh+vfrztBksGI/Gth78+uXPE1KqJYRg9SdNaTNYMB5tXj9e3taUkFItIQRbWz1pM1gwHt6ggo9bPQmLn8svp81gwXiEKIPLL/OuAp1QJRlgjOHxJ7fpfvrgRHywsQGPP7ntpLJjxhheWLdf99MHJ2JzTTteWLf/pOO3rrZN99MHJ6Km1Yt1tW0nHb8aV6/upw9OREtvEDWu3pOOnzug/+mDE9GvULgDMq8O6EDSkwFZpti77xieee6zZJ9Ks5557jPs2++a0PLKikJx4KgHq9cfTELL9GH1+oM4eNQ7ofEXCg2vLLh+f0cSWqYP6/d34Ki7f0LjB+jAyoJ7O9O/a28kezt9cAfkCXVXRVYW1OuCQongCSkI0sR0V3HJo0JlgOGe+9brbmXBRFIUhp/87N/ABNZnYwB++8oO3a0smEiUMjzwyvYJv/+VT5vTesDWWCgLx2CitrV6dbeyYCIxAFtPoqrUmQFjVMbCY6B9SU0GGAtvOqSXvQaSqaGhG6ue/GRc2TFjDM+v3a+bvQaSqamjFy+sHV93AWMMa2vbdLPXQDJ19ASwdpzdBYwx7HH16WavgWTqCSqocfWNO37uoKKbvQaSKTQQC14d0K6kJQOUhrchfmn1zmSdQndeWr0DHR19cd3lUxrehvi1jfUqtEwfXtvYAJfHH1/8BrYh3njApULL9GHjQRc8/aG4yt2RbYjrujK3e2Coum4f+mUa1wUtMo1Q67sPqskbUvh0Qw1LWjIgCASPPvaxZrchToVQiOLRxz6Oa3aBIBA8u2afZrchToWQQvHsmn3xxY8QrKlp0+w2xKmgUIY1NW1xzc4ghGD3sd6M7h4YijJgt6s3rtHxhBC4g7w0PpQ7yGcXaFVSkgFFoThU34V/rTuQjMPr2pq1dThU3zXqYjoKpWhs68H7O46q2DJ9eG/7UTS29UChI8ePUoY2rx87mt3qNUwntje70eYdvbpCGYMnIKOJd6+coMkbgGeMwYSMMQQVij5+I3SCPpkiqMRXXeHUlZRkQBQFPP7UNvD/3ydiDHjiqU9G3ZlPFAS8uK6Ox28YjAEvvlsHURg5foJAsK62nd/VDoMBeHdv+6jVFYEQ1Lj61GuUztS6+katrhBC4OHjLEbkCSq8OqBBSUkGOrt82LChMRmHTgsfbGhA5yh9sd09AWyuaVOxRfqyeU8buke5a+3xh1DT6lGxRfqyp8WDHn9oxH/3yxQtvbwqMJKjvQH4R7nrVyiDLwPXFIiXT6EJXSabS4yEJwOKQvHXV/ckdE3+dCMrFH97dc+wXQUKZfjH5kb+ZRmFQhne2jJ8jChl2FzfmdFTCcdCGbClvnPYUjdlDAfdPl5VGQUDcMjtGzZ+jDH08EGDY+oJ8ZkFWpOUysDrb9Ym47Bp5e9v1g5bKiMA1mxrUr9BOvPO1iYMW2gkwLbGzFnyeqK2jhAjAqDB7Ve3MTpU7/YP//kD0CvzZGAsPEbak9BkgFKGXbvbMmIjopPlcvmwa3dbzEAuShlqDndlxEZEJ6vLG0Dt4e7Y+DGGw52+jNiI6GR5/TIOd8be3TLG4OoPZcRGRCfLr1B09odi7m4ZYwhQlhEbEZ0shQEBviqhpiS8MvDeBw2JPmTaeu+DerAhBdnNe/hYgXhtGiZWe1r4WIF4DRero3ysQNyGi5WPzyCIG4+VtiQ0GRAEgo0fNSbykGlt44eNMaPiBYFgS23mrqE/Xh/Xxo6KFwhBbQZuRjRRtW3emFHxhBC0ZuBmRBPV0huM6eojhKCfX+Di1i9TPqtAQxKaDLS29qC5md+Zxaup2YO2tuNbErd3+9DCp3TF7airDx3d/dHH3b4gXH38YhYvV28Q3b7j8eoLKejlg9/i1htS4BsUL5kyyLzsHTeZMch8pK9mJCwZUBSKHbtaE3W4jLFjVxsUhUJRKGoa+R4O41VzOLyAk0IZGjt5IjVehzt9UCgDZQyd/SNPN+SG5xpY3pkxhgAfazFuAb4AkWYktDKwd9+xRB4uI0RiRgjBgSO8qjJeB454AEJACHBkUJWAi88Rtw+EhGcRdI+y9gA3vG5/KDqrIMDvcsctyGOmGVKiDiSKAmr38mRgvGr3dkRXI6w74k5tY3SortkDcWDcwBE3TwbGq7m7PzpuoIvPwhi3bv/xtfaDvDIwbgFKQUjCLkPcSUjo/4X6htTN7z5c/wK6XFtjnrNkV2Bm9f+M+j5313a0HnkbgYALJpMTJZO/BEfevCS2NNah+uMxa2rXxlbFtev+gKO71mLG+dej/MyvjPra9rpNOPTRy/B5WmGxl2D6ed9C4SnnqNRS4HD7oDEX3tTNj9/0l1XY/9G/4O1sgygZUDS1CuetuAUlM+aO+r66Lf/GR3/+IzxtzbAXT8F5K27BKQsuVKnVsTHzpmhjHTkUwp9//xts3/BvdBw5DIvVhlMXLcaK23+CvKLiUd/78dq38ZdHHkB7UyOKyipw1W13Yf7Fl6nUcsAzKGahFN7l/uvNN/Dyn57Gnu3b0d3ViX9u2orquaeN+b41b76OB++/D00N9SirnIr//ul9+OKXR//OJ1KIz8PUjIR1E8gyhTvFi5Xk2KswZ96vov9Nm3nzqK/v66lHw8Fnkeucj1lz7kKucz4aDj2Dvl71pkd6PH5QSiErFB4NDH7rOLAFntY6mKx5Y77W3bIPu9/6LUqqz8c51zyCkurzseutB+Bp3a9CS8O8viAoDY8Z6EvhevB5peW48Pq7cO1Dr+GqXzwHe2Ep/nb/TfB5Rk6QW/bvxFsP3YHqJctxzYN/Q/WS5XjrwTvQWrdLtXb7ggrowJiBYIp+mIP+fjTU7sKVN9+OB177N3746LNobTyE3958zajvq9v+Cf7v9huw+Mtfw/+++R4Wf/lrePgH38GBnZ+p1HIgqLDomIFU1gV8vj6ctfAc3Hnf/XG/57OtH+OWb38TX/3GCryz+RN89RsrcMu3r8b2T7YlsaWxKPiWxlqRsMpAtwZKtAKRYDDa4359R/v7yLHPQnHpJQCA4qxi9PYcQEfb+6icXpmsZsZgDPD7ZU1MSfL3dGLf+idwxtfuw/a//3zM1zd99ibyyuehcsHXAQCV+VPQ3bwHhz/7B+YuH70ikyiMAYEQTeldGQDMPi/2bnTptf+N3etfx7HDB1A+d8Gw7/ns7ZdQftpCLLhiJQAgf/JKNNd8is/efhnLbx+9opAoDECI0pReyCw5Ntzz7N9invvPn/wKP/76F+FqOQJn6eRh3/fPF57E3EVL8NXvfh8A8NXvfh+1n2zBP59/Erc99ETS2x2hMAYy4nqE6rjiqqsBAM2HG+N+z7OP/QFfuOBCfO+/7wAATJ95B7Zu+hDPPvYoHv3Ti8lo5rAUBkh8hmHKJawycOxY6kdy9/YcwO7P70TtzvvQ1PAyQqGeUV/f19sAm312zHM2exX6euuT2cwTBIMKOlNY4gYAxij2vPMQKs6+AlZneVzv8bTsQ37F6THP5VecDs/Rvclo4oiCMoVXQ4PflFAIu959DSZLDgoqZoz4upa6Xag4LbZLpWLeIhzdvzPZTYwhK0wTyehgvh4vCCGw2EZO7ut2fIa55y6Jee60LyxF3Y5Pk928GJSGEwK92b7tY5x3wUUxzy2+8GJ8vvVjVduhx9ilo4RVBrwpXkLXZq+GI+8MGI15CAY60Xr0LRzc93vMrL4TgmAY9j1yyAtJyol5TpJyII+RRCSaQhl6fKm9mDVuew1EEDDljC/F/Z5AnxvGbEfMc8ZsBwI+dadIUsrg08CWsYc+3YC3H74ToYAf1lwnvnbv47DYckd8fZ/bhWxHfsxz2Y58+NyuZDc1BmUMIQ0NfgsG/Fj94C9x7vIrYLHmjPg6t6sDjvyCmOcc+QVwH1N34S4GBsb0d2t7rL0dBYWFMc8VFBbiWHu7qu3gEwq0IWHJQEjFxUq6XNvQ3PhK9PG0md9Dbv6Z0cdZllJYsstQs/MeeN01ow8IPGEFrBR8MhlU3eWxtfYD7H33j9HH8674KZo++wcWXPN/E1gRbMjrGVJQMmWq7vJYu/GfePeJ432zV979GCZXnYEpc87GNb/7K/p73Nj17mt468H/wdW/eQnZ9vxRjhYbK8bYMJ/J5FNzuMCHb72KJ+893o304ydfweyzFgIIDyb8v9u/C8Yorr/3gbEPNiRWDCwlq9oNXVY8md74yyv48fdviT5+7rU3Mf/cL0zsYEPjl4LPn5qx40amyzkd9ty5yLZWRB8bjI4TXmMw2mE05iHgH/kuQTLYIIdil6+V5V5IhpHvRtJBwfT5sJccL1+3121C0OfBR09cF32OMYq6D55F02f/wHk3PDPscUzZDgT7YqsAQZ8bRosjKe3WiulnL0XJKadGH1vzwndXRrMFxpIy5JaUoXTGXDz9vS9hz/o3omMChsp2ONE3pArg83TBMmryoH9nnf9FnDL3ePIemTEgh0J4+AffwbEjTfjpc6+NWhUAAIezEG5X7Pfb0+mC3VkwwjvSw0WXLce8s+ZHHxeXlk7oOAVFRSdUAVzHjp1QLeAyQ8KSAYNBTNShxiSKZoiiedTXyKFeBIPdkEYZUJhtrUSPZy8Kiy+IPuf17EW2dWrC2hoXAkhiUnaTHpZktEAyWqKPJ829BAVT58e85vPXfoqSqvNROueioW+PspfOQufhHSg/6/Loc52N22GfNHvE9yQHia41oAZjVjaMWdlxvJJBDo08Q6R0xlwc3vkxzvrSt6LPNe7cgkkzx54SlmiiijeDWVYrsqzWmOciiUDb4Xrc+/zfkZM79myWGfPOxO7NG7H82hujz+3atAEz5p2V8DaPRc1qmDUnB9ack79hOX3+Qnz0/npcf8t/RZ/78L1/44wFC0/62OOR6sGXXFjCrkA2mylRhxo3RfHjaNPf0ddTj0CgEz3eOtQfeBySZIUj9/gPa+Oh59HS/Gb0cUHR+fB69qG9ZR38/W1ob1mHHu8+FBafr2r7RYEgxzL8uAY1GLNssBaUx/xHBAnG7Fxk5x0fyb3nnYdwYOPz0cdlZ3wZXY3b0bD1VfR1NqNh66voatqJ8jO/rGr7BYHAYlQvGR0q6Pfhw5cfQUvdLng6WtBevxdrH/sZejrbMfOci6Ove+eRu7Hxpd9HH5/xH1ejcecWbH39WXQeacDW159F066tOHP51aq2XyAEBhWT0aEUWcZD31+J+j07cev/rgJVKNzHOuA+1gE5eDyZ+sOdt2D1g7+IPr7sWzdg56YP8MZTj+Jo/QG88dSj2L1lI/7j2zeo2n4CAhVz0WG5u7pQs2snDu7bBwCoP1CHml070dF+fGfP22+4Dg/c+5Po4+tu+h4+XP9vrHrodzi4fz9WPfQ7bHr/PVx3862qtj3VsePCElYZKCiI504pOQgR0O9rQZdrKxSlH5LBhhzbDFRMWxlTQQgFu2P6E605U1Ex/T/ReuRttB59G0aTE5XTViLbqs60wgijUUS+bfRKhxb4vcdi+hMdk2bj1OV34OCmF3Fo08uwOIpx6vI7YC+ZqWq7jJIA2wiDRNUgCCK6jjag5oN/oN/rhjnHgeLp1fjGL/4EZ9n06Ou8rjYQcvyiO2nWPCy//QFsWv0HbPrzH+EomoLltz8w5kJFiSaJBEIK784621rw6XtrAQB3XH5BzL/d+/zfUb3gXACAq+VoTPxmnnE2bnvwCfz597/BXx55AMVTKnDbQ0/ilNPOhJoEIfV3t+++8zb+56bjSdCt14arTd+/62784Mf3AACONjfHxO/Mhefg0edexO9+/jM89Iv7UFY5FX947iWcfnZslTDZRL5zoSYQlqAVH2SZYv65jyfiUBmFEOCTzTeCMuCyH72T6uboDiHAmt9cBgaCH72xO9XN0R0C4DeXnwoQ4LU6vpz4RFw5owAEQJMGFg3To7JsI9/KWAMSVhuUJAEOh/bvbrXGbjdDEARIogB7tjHVzdEdm8UIQRAgCgTZKewq0CuLUYQgEAiEwKjmwIE0YRTDsSOEJHbXtwwhADwR0IiEfn6nVo496IeLNW3q8ZiVFVlHeSU3nPKi4wOpinTQ1aI1g2NmM+pyclFK2QfFzMA7v8fNwBNQzUhYMqAoFFWz03tKTzJUzS6EolBQyjBjsiPVzdGdGVPsUAbW1p/syEp1c3RnSm5WdG39PDNPBsYr1yyBDcTPmMJBmHplEgS+N4FGJPTTO3sWTwbGKxIzxhhOmRz/vgpc2CmT7QBjYAyYnMuTgfGa7LCAsfBSW7nm1A3C1KtcsyG6ZI6JVwbGzchjphkJuxUQRQHz5pYk6nAZY97cYogDdxTVFSMvXcsNr7o8Lxq/ivzUzWjRq/J8S3SNhvwsngyMlzPLAGGgz9vEKwPjZhIFPmZAIxL66S0pycGUKfzuNl5lU+woLh7U551rQamTX9DiNcmZjcJB1YBcixFOPggzbk6rEbmW4/HKNoiwqrh4mN5ZDSIsg+IlCQQSv7DFTSIEEq8MaEZCkwFKGRZ/oSKRh0xri8+rgEKP70lAKcM5VXwp0HgtrCoCHbQnAWUMVSW2FLZIX6qKbaCD+msZYyix8mQqXqVWY0x/N2MMWRKvDsQrS+LjBbQk4Z/cC5aqu2CPnl2wdOoJi5WcO4d3tcTr3DnFJzw3p5RXpuI1XKwmWVO3kqjeDBcrC08G4sZjpS0J/b8hCARzTy2G02kZ+8UZzum0YO6pxRAGlckEgaCqPBd5KVzaWS/ybCZUlefGxo8QlOdbYOOj4sdkM0soz7dE+7uB8HxvZ5YBZt73PSazKCA/yxDT300IgUkgqu7zoFciCQ+45OMFtCMp3/qvfqUqGYdNK1d8pWrYEhkDcOn8MvUbpDOXLSgbfuNTBsyv4OtdjGXBCDFiACr54mFjmuowj7jxrlXi4y7GwmOkPQlPBkRRwP/72hxVd+HTG2kgRuIwMRIFgi8vqlB1Fz69GS1GgkCwaGo+3/xkFAIBFk1zxlQFjv8bwXSHhe8jNwoCYJrDMmz8CCHI4YMwx5RjEHlVQGOScsXOz7NgyZKKZBw6LSxdUom8vJG7UnJzTFhUfWJ/OBe2aE4xHKP0beeYDagu4WMHRjKn1A6raeSuFLMkoJSPHRjRJKsJ5lH6u0WBwMJvhkZkEQV+s6NBSfnEKgrFjd+ZD574nYgQ4MYbzoai0BFfo1CKby2bweM3DEKAa5bNiJmFMRSlDMuqivjd7TAIgGWzY2dhDEUZQzWf4jqiamd2zCyMoRhjsPN9MkZkN4l8FoEGJSUZEEUB06bm4YvLTknG4XXt0ktmYGpl3rBdBBGiIKCiOAfnz5ukYsv04YLTJ6G8KAeiMHL8BIGg2GbGvCkO9RqmE6dPcaDIZo4ZeDmUQAjsJgllObw6MFSZzQSbSRq2iyCCEAKjKCCbj5Y/QbYkwCjwhYa0KGmfVkoZbr15IST+hYgyGATcevPCUe/KIihluO7SWZD40OQogyjguktnxRc/xnBpdTHfK30QUSC4tLp41LvaCMYYTi2w8urKIAIBTnVa47qrZYzBwTd+OoHDKPGqgEYl7UotCARFRVZ8c8VpyTqF7nxzxTwUFmaPelcWIQgEBQ4zrlw8VYWW6cOViyvhtI9+VxshEAJHlgGLT3Gq0DJ9WDzdCfug5XNHQwhBliRgxihjWzLNjFwLsqT47moJCU8xtPHBhFE2gwiR8C2LtSqpt+2EENz83fmorORr7k+tzMVNN5w9ri8CIQTfvmQmygr51sblRVZcc8nMccfvkqpiFPJyN4pyTLikqnjc8ZvjzEYO7/+GzSii2pk97vg5jCIM/OIHgxCOBU8EtEuFGj7B/fdeCDGDy92iSHD/zy4CJlB0JQDuuGpeXHfD6UoQCO74xukTfv9VZ03J6KmGAgG+cdaUCb9/fokto7sLCMIxmKh8vggW8keZvcJpQ9KTAUkSMHtWAVZee2ayT6VZK689E7NmOic0fkIUBZwyyY4VF05PQsv0YcWF0zF9km1Ca1eIAsEkRxYunJm5ez5cOLMQkxxZE5rOJRCCXJOE2fmZ210wO98CxxiDBkdCCIFRILBncHeB3SDCyFcb1DxVRvcRQnDjDfOxZHGFGqfTlPOXVOLGG+af1BeBEIJrls3EOdVFCWyZPpw7pxjXLBtf98BQhBAsqypGdQZuYjSn1IZl4+weGIoQgmqnFaUZuIlRqdWIaqf1pOPnMEnIysC1B7JEAQ6TxBMBHVDt00kpw6/vvxjTp2XOUrHTp+Xhlz+/OK7R72OhjOGuFWegYtCWx+muojgHP1pxelyj38fCGMOKs8tQbMucpXaLbWasOLssIaO3GWNYUGKHLYPGD9iMIhaW2BMWP6dZgiGD+qsMAoHTzGcP6IVqyYAgEEgGEY88vDwjNjJyOi145OHlkAxCQvr7BUJgEAl+uXJ+RmxklGcz4Zcr50MSyITKs0MRQiAKBCsXVWTERkY2s4SViyogkMSUZwkhEAhw3mRHRmxkZBYFnDfZAZKg0e+EhPcnLTQbMmIjI5GE/1YCPntAL1T9VkuiAGe+BU8/fjny8rLUPLWq8vKy8PTjl8OZb0noHg2iKCA3x4QHbzoHjjQu2TqsRjx40znIzTGNujjTeIkCQY7ZgJsWTxt1OV69s5ok3LR4GnLMhoQu+yoQArMkYGmZA6Y0vqKZRIKlZQ6YJSEhiWhEZLphUZYhrQe0CgN/I59GqC+EpaCGI8sULa1eXH/jG3C5fGqfPqkKCrLx1KqvoLTElrQFl2SFor3bhx+u2oIubyAp50iVfJsZv7tpIYpyE5tIDaZQhm5fEKs2HoLXLyflHKliM4cTgVyLMWnrv1PG0BdS8EGTG/5RltXWI7MkYOkUB7INYkITgcEYY5AZQ3t/CEqaVdAjyY6UoIoUp56UJANAOCFwdfpw621v41B9VyqakHDTp+WFu0HyLUlfeVFWKLp7Arj76W1obO9J6rnUUlGcg1+unI/cHFPSd71UKEOPP4SnNzegPU0SqmKbGSsXVSS8IjAcyhj8MsWHR9zwBpWknkstNqMY7gZJcEVgOIwxKAzo8IcQSsCYIi0wCCTaDcITAf1JWTIAhBMCWVZw1z3vYsPGxlQ1IyGWLq7Er+6/GJJBUG37ZkWhCCkMv179ObbUtKtyzmRZVF2Eu64+A5JAEto1MBqFMiiUYfUnTahp9apyzmSpLrHh6vllEAbGRqiBMgbKgK2tHrT0BlU5Z7KUWo1YWGIHIUh6IhDBGAMD4PLL6Nd5hSVLFOA0S3yMgI6lNBkAwrMMBIHg8Se34ZnnPoOis7qZKBKsvPZM3HjD/OjfoibKGARC8MK6/Vi9/mBCZi6oSRAIVlw4Hdcsmxn9W9TEGAMhBOtq27B+fwd0Fj4IJLyOwLKq4ujfoqbIOWtcvdjb6YPOwgeC8DoC1QN7DqQqfu6ADE9InxUWu0GEwySlJH5c4qQ8GYhgjGHvvmO45771aGjoTnVz4lJZmYtf/OwizJrpTPmXgDGGA0c9+O0rO9DU0ZvStsSrrNCKO686HdMn2TQRv6PufrzyaTM6evTRbVCYY8JVZ03BJEeWJuLXHZCxrdWLHp10G+QYRSwosWliHjxjDEHK0OmXEdLGT/KYDIQg3yzxBYXShGaSASDcbQAwrHryE7y0egdCIW2WzgwGAd9cMQ833XA2AKKZnRnlgVLjC2v347WNDQhptPRoEAVcubgS11wyEwBU61YZizJQFlhb24aNB13Rx1ojCgSLpztxSVVx9LEWRNaDqHH1oa7bp9kqi0DCmw5VO7MHHmsjfpGfYndQgVfjVQKbQYRjYM0JngikB00lAxGMMbR39OEPj32MNWvroJUWEgJceskM3HrzQhQWjm/TEjUxxuDy+PHsmn14b/tRTcXvgtMn4bpLZ8FpN2s6fp7+ENbUtGF7s1szpW8C4PQpDlxaXQx7lkHT8euXKXa7etGkscGZZTYTTnVa4959MBUigwvdQRl9srYS+mxJgMMo8UGCaUiTyQBwfCzBofouPP7UNmzY0Bi981WbJApYuqQS3/3O2Zg2NS8lYwPGK9LGxrYevLiuDptr2lJ2pysKBIvmFONbF89ARXGOPuI3MH6hzevHutp21LR6UnanKxBgTqkdF88uQrHNnJKxFeMV6T/2BGTUuPrQ0htIWVJFAEyymlDlzIZdJ33bkTYGFQpPUIEvxVU+iyjAbhRhFAVdxI8bP80mAxGKQiGKAjq7fPjbq3vw9zdrVVubwOm04MrLq/H1K6uRl2eJtkVPFEohCgK6ewJ4a0sj3tnapNraBHk2E/5jQTm+tKgcDqsp2hY9iSQuPf4QttR3Ymtjl2prE9jMEhZU5mPR1HxYTZIukqihIomLX6Y45Pah3u1XbW0CsyhgqiML0xxZMEuCLpKooSIXXoUy9IQU9MqKamsTiASwGkTkSCJEgfAkIM1pPhkYTFEoCCHYtbsN731Qjw0fNqK52ZPQc5RNsWPxeRW4YOlUzD01PEJbbwnASBTKQADUHu7Gpj1t2FLbjhZXX0LPMcmZjYVVRTh3TjGqynPBoJ0+7ZMV6RM/3OnDnhYPalu9cPUldkqd02pEVbENc0rtKB/YKVBvF7CRUBb+/HX2h3C0N4CW3iB6E9w3bjWIKLUaMclqQn6WAQzpE7/IT3WAMvhkin6ZQk7wz7dECLIkARZJgGnge8sTgMygq2QgglIGBgZRENDa2oOdu9uwd98x1O7twKH6Lng8/jH7yQkB7HYzpk3NQ9XsQsyeVYB5c4tRXJwDSikAoru7sHhFph8KAkF7tw+1h7tx4IgHdc0eHG7vgdcXjCt+NosR5UU5mDHFjlMm21FdnofC3KyY46ejSFIgEIJuXxCHO3044vahubsf7V4/fEFlzJI4AWAxiiiymTElNwuTHRaU51uQazHGHD8dRX5yCCHoCyno7A+h2x9Ct1+GJygjGOetr1EksBsl5Jol5JoNcGYZYDGIMcdPR4P/PpkyBBSKIGUI0PC6I/HWXQQABpHAJAgwCgQmUYA0UAGIHJ/LHLpMBoZSBsqOkTt4WaZwu/txzOWDx+MfmKUASJIAu92MAqcFublZ0dcPfX+mURQKDFqsRlYovH1BdHoD8PqCMfGxWYzIt5lgtxqjJX+FMiCNKijjpVAWs1iNQhn6gjK8/SH4ggqUga+YSAgsRhG2LAOsRimaLFHGwFj6VFDGK1IxiFx8KAtf4PwyRVCh0bEaAgGMogCzJMAkHl8lMLJ4T7omT2MZevGODEBUBhaFYgOpKUF4sylxYI+Ewa8f/H4uM6VFMsBxHMdx3MRl5q0cx3Ecx3FRPBngOI7juAzHkwGO4ziOy3A8GeA4juO4DMeTAY7jOI7LcDwZ4DiO47gMx5MBjuM4jstwPBngOI7juAzHkwGO4ziOy3A8GeA4juO4DMeTAY7jOI7LcDwZ4DiO47gMx5MBjuM4jstwPBngOI7juAzHkwGO4ziOy3A8GeA4juO4DMeTAY7jOI7LcP8fOg/Fpy720zQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a2, 'a2，一维', 5, -5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c1884bd-53ed-4a8e-9dca-cfee0cdc7086",
   "metadata": {},
   "source": [
    "### 沿行堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "7253dfa7-bf19-4c16-a204-3b9fdcc3b5bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1]])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.stack((a1, a2))\n",
    "# 默认， axis = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "62d25e24-adfe-4b21-9760-213f94cf335f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.stack((a1, a2)), '沿行叠加，np.stack', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "23edbfff-06dc-40c2-9ecc-f9e6303690bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1],\n",
       "       [ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1],\n",
       "       [ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1]])"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 多个数组拼接\n",
    "np.stack((a1, a2, a1, a2, a1, a2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "f5520250-2043-4a16-b539-362183719410",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1]])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.row_stack((a1, a2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "10afb6a1-ae1d-4005-bf2d-7c7edd5c3492",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5],\n",
       "       [-5, -4, -3, -2, -1]])"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.vstack((a1, a2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4d2bf2dc-ce59-4f27-aafe-6284dabd48b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1],\n",
       "       [ 2],\n",
       "       [ 3],\n",
       "       [ 4],\n",
       "       [ 5],\n",
       "       [-5],\n",
       "       [-4],\n",
       "       [-3],\n",
       "       [-2],\n",
       "       [-1]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.vstack((a1.reshape(-1,1), a2.reshape(-1,1)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "6506de51-4ffc-4e88-9dc1-61f688ed2094",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0 1 2]\n",
      " [1 2 3]\n",
      " [2 3 4]\n",
      " [3 4 5]\n",
      " [4 5 6]]\n"
     ]
    }
   ],
   "source": [
    "# 创建一个空数组\n",
    "arr = np.empty((0, 3), dtype=int)\n",
    "\n",
    "# 通过for循环向数组中添加元素\n",
    "for i in range(5):\n",
    "    row = [i, i+1, i+2]\n",
    "    arr = np.vstack([arr, row])\n",
    "\n",
    "print(arr)\n",
    "\n",
    "# 在这个示例中，首先使用np.empty()函数创建了一个空数组，\n",
    "# 其形状为(0, 3)，表示该数组有0行3列。\n",
    "# 接着通过for循环，生成一个包含5行3列的数组，\n",
    "# 每一行的值都是从i开始的三个连续整数。\n",
    "\n",
    "# 在for循环中，使用np.vstack()函数将每一行添加到数组中。\n",
    "# np.vstack()函数可以将多个数组沿着垂直方向堆叠起来，\n",
    "# 因此可以将每一行当作一个数组，\n",
    "# 然后将它们依次添加到原来的数组中。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4da0c9b6-7ac4-4732-9d4f-c7a03007ed6d",
   "metadata": {},
   "source": [
    "### 沿列堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "76c56a99-ceb0-41e9-b20f-f7352d854c62",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1, -5],\n",
       "       [ 2, -4],\n",
       "       [ 3, -3],\n",
       "       [ 4, -2],\n",
       "       [ 5, -1]])"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.stack((a1, a2), axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "f4a184cc-cc07-40c0-8587-ab12a0f5c410",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 100x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.stack((a1, a2), axis = 1), '沿列叠加，np.stack', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "75364932-0f9a-4a16-aa87-9f49980ac3fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1, -5],\n",
       "       [ 2, -4],\n",
       "       [ 3, -3],\n",
       "       [ 4, -2],\n",
       "       [ 5, -1]])"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.column_stack((a1, a2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "6dd7193f-21f7-4905-a47e-33bcbec6feb6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1,  2,  3,  4,  5, -5, -4, -3, -2, -1])"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.hstack((a1, a2))\n",
    "# numpy.hstack 函数可以用来沿着水平方向将多个数组堆叠在一起，形成一个新的数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "b1700f23-b2d4-44df-9597-220118b5f7b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAABJCAYAAACghyV0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1/ElEQVR4nO2dd3gc1dWH3zs7W9R7sWzZcu8Fd1NMsOkxhBp6ICRAEsgHMYkpCS2QBBI6JKGFXhMMBgOhxKYaF9x7L+q9ly0zc78/1lp7pZV2V1pplWje5/HzeEdzZ45WM/f+7rnnnCuklBITExMTExOTfosSbQNMTExMTExMoospBkxMTExMTPo5phgwMTExMTHp55hiwMTExMTEpJ9jigETExMTE5N+jikGTExMTExM+jmmGDAxMTExMennmGLAxMTExMSkn2OKARMTExMTk36OKQZMTExMTEz6OaYYMDExMTEx6eeYYsDExMTExKSfY4oBExMTExOTfk5UxYCUBlIabY7Jdp+l1HvTrA6R0kAaeptj7Td9lIYW8HhvI6VEalqA422+c11DGka786KB1DztbGn3WdcD/l7RwNB1jDa2tLNXSgy3pzfN6hDDkHg8wd8nj0fHMKL/DANoutHufTLafNYNA72PPMO6IdvZ1/azlBK9j3y/Ura3N1D/ZUjZd/q1QP1uwLEj+vb+tyB6ewtjKQ2EUJBaPbiKwVUO7jLwVIHhBiQgQFjBmgK2LLBngm0Awpbqa99r9ho6QrEg3c1QtQdqDyBrDkLtIXA1gNS99ioqxKZBSh4iOQ9Sh0HKUBAKIBBC9I69UoKUYOgY+bsxDu1AL9iNkb8HWVMGmsf7c4uKiE9CyR2JkjsKZfAoLEMnIGLjfb9zbyE1DaGquPbvo2XTBpw7ttGyfRvuA/swWlrAMMBiQYmNwz5yFDHjxuMYN4GYKVOx5Qz0te8tDI+GYlVpKa2kYsU6qtdupXrtVmo27cRdU+8VKkJgiXGQMGIwqdMnkjptPOmzJ5MyZSzSkChq732/hiERAlwujc1byti6vZwdO8vZsaOCyqpm3G6vOLDZLKSnxTJ2bAZjx2QyYVwmkyZmYberSAmK0jvPMHgHd4FgX3E9O/Nr2FNYx+7CWoorm3FpuvcRVgQJMVaG5SQyalASIwclM2FoKikJdjTdQLX0Xj+hGxKLIqhucnOwqonC2hYKa1oorXfi0nQMCQKwqQqZCXYGpcQyKDmGIamxZCU6fO17C0NKFCFw6waVLR5qnBo1Tg81Lg2XZtA6KCgC4qwWUuwqKQ4rqTEqqQ4rrZb2ar92GJchcesGbkPi0iW6lBw9iFkE2BQFm0VgUwQOi4IiBFLKXrP3v5FeEwPe2aiEpt3QsMkrAMLFmgrxEyF+PAhv599Tf1yfCKjchdy3DIrXHx74w8AWB0NOQAw/GRGb1qODrNR1hMWCUV2G56slaKs+geb68C5iUbFMOg7r3HOwDJ/ou2aP2GsYIASypYXaJYupeftN3Pv3hX0dx8TJpFx0KUmnnQkWC0LpuQHA0HSEIij68Av2PPkaJZ+t8AqrMIjNHcCIa37IyJ9fgj09BUPXUXroO9Y0A1VV2LO3ijf/uZl/f7IHpzM8j0pMjMrpp47kkosmMWJ4mu+aPUHrgFjX5OaDlQf5aFU+FXXOsK4hBEwdmcEPjstj5phMJPToIGscnlVvLKjl2/1VFNS0hH2NzAQ7c4alMXNIKlaLQAJKD/VrrSKgotnN3toWihpchDsA2BRBXpKDESmxxFktvmv2BK0DuGZIGjw6jR6drvh/YlWFBKsFh0UxRUEH9LgY8ImAujXQsBmM8F7ugAgrxI2FlGNBWCPqKfB5LgpWIXcuhYbiCFxVQNZ4xIQfQuKgiD+IUhoYJQfxvPcs+s61YQ9QgRDZQ7CddhnqtHlIw4joICs1DcPZQsXjD1O79D1kS3O3r2lJTiblwktIu+bnCEWJqKegVQTsfuJVdjz0PM0FJd2+pmK1knv+qRzz4C04stMjKghaO7vv1hby17+vZvPWLgjvAEyakMX1P5/FjOmDIt6h6oakut7Jsx/u4JstJWh695/hjGQHF8wdzjnH52FIiSWCz7BueF3Qy3aV8+3+Kprd3V/KtFkUpg1J4czx2VgtSkRFTOvfK7/eyY6qJuojYC9AVqyNSZlxJNnUHujXJB5DUuPWcEbgeQCwKoIkq4U4q8UUBW3oUTEgpfR6ACo/Aa028jewxELqfETssIj8YaWhg6cZuf55KNkYGRuPRlhg9ALEmLO8H7vpJZC61x3t+fhVPJ++DkbkYyssE4/FfsnNEBPfbS9Bq6ho+GI5JffeiV5VGSErj2AbMpSc+x7AMWFiRF50qRs0Hixk5eW/oXLVxu4b2AY1Po5jHlzEyOsujoiXQNMMNE3noUdXsPjd7RGy0p/zzx3HzTcdh6pauu0l0A0Di6LwwcqDPPvhDlpckX+Gxw1JYdElU8hOiY3IUoeUkoKaFt5cW0BFoysCFvqT4FC54JhBjBuQGJFZtyElHl3yXWk9JU3uCFl5BAGMTYtlbFoc0H2vRuuQVOfWqQshvqUrxFgU0hwqCr231NHX6REx4PMG1KyAho3e//ckcaMhdR4ItVteAlmwCrnxVfA0RdC4ACTlImZcB/HZXRYE0tCRZYW4Xv4jRlH47vWwiE3AfuEvUafN6/IlpKYhXS5K/nAX9R99EEHjAqAopF52JZk3LgShdEnEtIrLHQ/+g813PIbujHynfzRZ8+cw5+U/48hIRbF2zathGJL1G4q56/fLKCltjLCF/gwYkMDv75zHMVNyujzAarpBXZObB97YwMa9VRG20B+bqnDl6aO58MThXZ44eAPo4KOtJXy9t7KnezWOyU3m/GMGoird8xLk1ztZX9aAp4cDFpPsKrMHJBJvs3RZEEgp8UhJpVPrcXsVINWuEmftvfidvkzExYCUBkgDKt4HZ0EkL9051jTIOg8UR5cEgdyxBLnjvR4wrANUB2LOjZA+Kmx7pWFg7N+C8+nfgSv8NcquYj3jR9jO+FHY7aSmoTfUk3/NVbj27u4BywITO2sOuY8/hVDVsARBazbAqqtv58BL7/aUee2Iyclk/vKXiR+eixLmMoeUkg//vZt77luOHiGXajAsFsHdd8zjzNNHhT246rpBcVUzv3l6JdX1PSu0jubU6YNYeOFkb8xvGDYbhjdQ7YVvD7KnomeF1tFkJzq47oRhxFgtXRIE2yqb2F7Vw5Obo1CF4LhBSWTEWMN+JqT0BgSWOz09LrSOJslmIdnWewHIfZWIigGvR8CAsne9mQK9jZoM2ReGLQiMrW/D7g97zq6OUFTEsb+C9NEhewikoWPs3Yzzqdu9mQG9jPWUS7Cd9ZOQz28VAgevvARP/qEetCwwMVOmMviZFxCqNaS4h9ZsjBWXLCT/n//uBQv9saelcPI3r5MwfHDIHgLDkLz/wU7u/ePnkQgXCQsh4I7bT+LsBWNC9hBoh4XAwr+uoL6595/h703O4bbLjgFCcxEbh9MAn/lmPweruh/fEi7pcTau/96IsAXBlopGdlb3vr2KgOMHJpMRaw1ZcEkpcR4WAtEg8XDGRH8m8mHB5UujIwTAG5dQ9g7I0PL8pZTI3R9FRwgAGBpy5eNQl9+ufkEgpK5hFO7F+cwdURECAJ7P3sC97J+hfb+GgXS5yL/mqqgIAYCWjespvPH6kIMqhRCsue7OqAgBAFdVDcvnXUlLaQWGFvyZ0HWDz7/Yz31/+qLXhQB4v9b7/vQFn3+5H10PHuetGwY1DS4WPb0yKkIA4ItNxTy2eEvoM1cJL648GBUhAFDZ5Obpr/ejGUa7egCBkFKys7opKkIAwJCwoqiOWqcWsr1uQ1IRJSEAUO/RqXP3jfow0SJiYkDKwxkDzvxIXbJreKqgennQF10aOtQcQG59u5cM6wDdhVz9V68w6ORBlFKCruH6xz3gjkBGRjfwvP8cRv4ubwBjJwhFoeQPd/Xq0kAgmlZ+Q+VzTwUtrGRoGgdfW8q+5/7VS5YFpqWknBUXL0QEmQXqukFlVTN33bs8qgWCDENy973LqapuDioIFCH4w6vre3VpIBAfrc5n+YaioPZKKfnPrnJ2l/fe0kAgSuudvLOhKOhM25CSaqfGloreWxoIhC4lK4vrMGTgAkatyMM1Aip6eWkgELVuHbfRfwsVRUQMSGl4B+G67yJxue7TtAvZvL9dpT0/pESufZYeD24MheYq5JY3OxUwQgjc7/wdWVPei4Z1gDRwvfJAp7NtqWk0fLG854MFQ6Ty2adw7d/bYeVCqRu4axtY+8t7e9mywFR+u56dj7yI7GSwslgU7rpnGc1RmmEfTVOThzvvWY6lk0I/hiF5+6v9bD9U04uWdcxfl2yl0al1KKR0Q1JW72T5zj7wzgHrC2rZXlLfaeVCCawpCbO+SA/RrBlsKm8I2q/VuDR6KcwlKJVh1uH4XyJyywSVn0CXykH0ENXLQHo6LFspt70NjaVRMKwDDnyBrNgZcLlA6hr67g1o30ZpOSMAsrwA9wfPd1CO2cBwtlBy751RsKwDNA/Fv13kXeQOgLAorP7Jb3HX1PWyYR2z+XeP0niwsF25Y/B6Bd5+Zxtr1hZFwbLArPmukMXvbgs429YNg9KaZl76eFcULAtMQ7OHR/61qcNYBwG8sbYAvQ/NFN/eUIhHD7xcIKVka0UjjT2UjtcV9tc5KW92d2hvi2bQqPWdcUOTklq33i+9A90WA1Ia3oqCnsjnjHcLvRlqvm13WEoDGstg76dRMKpz5PoXDpcvboNiwfXmI71vUBC0zxcjK4ravzhCUPH4wz1SR6A7uHbtpObNV9t5BwyPRtFHX1L0/rIoWRYY3eli7S/uCZhZ4HRpPPZk++c72jz6xLc4Xe3Fi0VReOKdLbj7UMcP8O22MtbsKEdrI2B0Q/LNvkqKw6yA2NM0ODX+va2UtvJFSkmjW2d3Fyog9jRrSxva2dtKtSv6Xq221Ht0tH64r0G3xYAQilcM9EWadoBs2zEJ5L5P6RPLA21pKoeyLX7eAalr6NvXICujFJTZGdLA8+U77Q+3tFC7tBfTNMOg+s3X2lUnVKwqux59KUoWdU7Jp9/QsPeQX7yDphkseW8HTU19ryNtavLw3vs70I4a9A1DUlzZxLrdfUsctvLuNwfa7WNgUQTf7u/Z2gddZe2hGjwB/Op7avueEABo8uiUNvl7B6SUtOgGWh/shsErCPob3RIDUhrIlkOg9R3Xqh/SA43b/GMHdDfkr4yeTUGQ+5b5pRkKi4r21ZLoGRQE7bv/gOdIVTOpadQuWRyREsM9gacgn8aVK3zeAWkYNB4opPQ/fW+W3cruJ171+6yqCm+/sy1K1gTnX4u3+VcmFLDkmwPRMygI6/dUUFbd7JsJ6oZkV1kDVT1QrS8SuHWDNYeq/WIHdAmH6vuWF+No9ta2+AU/CiFo8PQtL9HRNHmMvjhd7FG6JQb6tFeglcYtvpoD0tAhfwVoffeloWwLsrnKt/2mUVPu3W+gr+JsRlvzqS+zQKgqNW+/GWWjOqfmzVf9vAO7n3glIvs59BT7X3rXtwWyrhusWVvIofza6BrVCYfya/lubaEvdkDTDD5bVxhlqzpGSliy4qDvEbAoghX7+qYXo5VV+6t8NQcMKTlY14LWR7ZEDkRpk5tmj+7r1zRD4gwhFTVaSKBJa7919v8y3fMMGB5oORghU3oITzXSXQ149wKQhWuibFAwJBSs8u6QaOhoa5f36YEKQFv/OcLiHVxd+/d1affB3qTx6y8xnF6XqlAUDr31UZQt6hxPXQPFH32JoekoiuDjT/ZE26Sg/PuTPSiKQDcka3aW09THo7S/2FjsCyR0awY7SxuibFHnlDW4KDvsCVCEoKAhuqmaoZBf7/TNtptCqKERbZo8er/at6DLJZe8mxBVEM7a+1er9/HgM8tZt6WAkvJ63nn6as45bVKnbb5ctZeb71vCtt2l5GQl8Zvr5vGzy48Lz1h3CdKaDAioDb34zf3vbObdVYfYWVRHjE1lzugM7r9iOqMHJnVu87ZSfv3id2wrqCEnJZZfnzOBn502JuT7ytqDKIr3T2MUhB59/eyWQp7bUkR+vXegG5sWx60zhnJqXnqHbb4uquG2r/ewo7qJAXE2bpo6hJ9OHBTyPQGMwr1euzUPLZs2hNX2aJ4pq+LR0kquSE/htoGZHZ73XWMzDxSXs9fpJtOqcnVGKhenJ4dhsIFz105iJk3BVVlDS3HoqWOLqeQdqv2OJWHhbwzvsM0OmnmVCopwk4zKAlI4mTDsBaq+28LAs+chhGDbjvBT3Q7tf5nqytV+x2Lj8hg9/jedtqut3kBJ4Qe4XJXY7ekMGHQWyalTgt5v+45yb0cqDXYV1IZtr9+1Pn2Sos2fMOqknzJk2g86Pbds9wr2ffMazXUlxCYNYMQJV5A5ck7Qe1TVO6lrcpEYa6O4rqVLLuIVb/2dXd98TH1VKRbVStawcZxw6Q0MGNV5H7d75X/45s2/UldaQFJ2LidcegMjZ80Per9D1c1kxNsRAmrDFFuax8Obj93Phi//Q3nhIWLjE5l47FwuXfg7UrOyO2276pMPeOvxByjLP0jW4Dwuuek2Zp5yZtB71jg131KBuwu5hB+/t4TXXniOrRs2UFNdxYcrVjN+0uSg7f793rs8dO895B/Yz+Chw/j1nfdw+tmdP0cA7j7saekJuuEZMLw7EoZBU7OLSWNzeOL354d0/oGCKr7/42c4fsYw1n/0a267/mRuvOcdFv87zKUJVzkgoKkirCWCL7eV8vPTx/Dtn77PJ3edimZITv/9pzR1UinrQFkDC/7wH44fm8m6B8/m1vMncdPza1i88mDo9tYcESxGfuizwIHxdn5/7HC+umgmX100k7mDUrnow81srwpcMOVgXQvnv7+RY3OSWXHxTH49PY/ffLWbJXvDHGyczRiVJaBYcO7o2lr2luYW/lVdx2iHvdPzCl1ufnagkGlxsSweNYRrM1P5Y3EZn9aGN5Nzbt2M1HWq1mwO29ZB2Pgrw3z/7mdIh+eW4+EvFDGGGP7AYH5AKi9TzhrCs7d63TYUVcXj0Tmwv2t5+glJ45gw5Y++f8NH/6LT85sa9nNg7/OkpM9kzITbSEmfyYF9/6CpMfj6//79NXg8OhZFYU9h12OKyvespK5kN/b41KDn1hbvZMvSPzNg/EnM+dHjDBh/EpuXPkBdSWiCeld+Lbohye9i5b7UnCHM/+ltXPXwYi6570WSMnP4170/p7muusM2xbs2sfThRYw/cQE/euhfjD9xAUsfWkTJ7uDPZVFtC0J4Z7BamN5Dt7OFA9s3c/4vFvLA4v9w8xPPU3JwH3/+Red7j+ze8B2PLryWuWdfwF/eW87csy/gkV9dw55N64Les+aozAF3kAJggWhubmL67Dncck/otUDWrV7FDVdezrkXX8pH337HuRdfyg1XXsaG74J7iCXg6YKd/6102TMghAUZphg446RxnHHSuJDPf+rVFQzOSebRu84DYOyIbNZuLuChZ5Zz/hnBFaEPd7l386Tq8NzX/77jVL/Pz19/PNlXv8m6fVXMHR9YPT/96S4Gp8fxyNWzvDYPSmbdvkoefn8b58/JC+3GzRVI3QNuN7I69FoIZw7N8Pt895zh/GNLId+V1jMuLb7d+f/YWsSgBAd/njsKgDGpcawvb+DxDYc4Z0THM/NAGOUFqOkDaNkevhho0g0WHSrhnkFZPF3WeQT3W1V1DLBafZ6D4Q47W1ucvFBRzanJCSHfs2XbVpIlVH+3JWx7FQTJIb46y6glDStX4LV3IHb24+RDaphJ6PZWr/N+r3v3VbdLgwsVRahYbZ17tY6mvOxzEpLGkJ1zGgDZMdk0NuyhvPRzho4Y2mlbTTeoqGgiJyeRPUVdEwPOhip2LnuaqRfcw4Z3fh/0/Px175E6ZApDZ10IwNC0XGoKtnJo3ftMWtC5BwTgQGkDM8dmUdjFqPyxJ/jPjr931a/ZsuxdKg7tYcikWQHbrPvgVYZMns2s87z7faQN+gkF29ay7oPXWLCwc49CYY3Xg1HVhSWY2IRE7njev9Lmj3/3R26/8HQqiwtJzwnsHfzw5WeYdOyJnHvdjQCce92NbP9uJR++9Aw3Pfx0p/ds8hjohoEQoktZBOddchkABYcOhtzm+b89yfHz5nP9rxcBMGL0Ilav+Jrn//YET7zwStD2bl2iiq7tcvnfRvdSCz09W0ls1YaDnHKCv3v9tLljWLulAE84qR8erzKXDSXdsqeu2RtdnJrQ8ex11a4KTpmc43fs1CkDWbuvEk84OdaaE6Os66WddUPyr92lNHl0Zg5IDHjO6tI65g/2n3GdPDiV9eUNeMIdcJze2ZT7QPjxAvcVlXFiYjzHJsQFPXdjcwvHJsT6HTs+IY5tzU48YcyOPKWlKFaVuh3h21uGm+vZx03s5wlKKKfjqPM9OJmIv72TiOUATrQwnNHu6lo8Tjd7urHVb2PDHrasv4Xtm+4h/8BreDydeyeaGg+QmDTW71hi0jiaGveHdL/6Bhf1zW4aulAhUUqDrR89TN6M84hP79jzcjR1xTtJyzvG71ha3jHUFe0IqX1Ti9fO8gisv+seD5s/W4w9NoGMvFEdnle8ezN5k/2XMfKmHEvRruDez7IGr5ezIUBdh67Q3FCPEILYxI4F4+6N65h03Il+xyYf/z12bwwtyFkz6PGtiY9mw5pVnDDvZL9jc+efwvrVq0Jq35u2RpvubdNk9Gyec2lFA1kZ/rOnrIwENM2gsqaRAZkhznKkx1t5Tu/6Sy6l5OYXv+P4sZlMGJzSsc21LWQlx/jbnBSDpksqG5wMSIntoGW7G3Zpe+KtlY3Mf3stTs0g3mrhje9PYmxqe68AQHmzi8yYNL9jmbE2NENS5fSQHde5y97P3MMDm9ESns0f1dSzvcXJP0eG1uFXejTS2oiGNFVFA2o1nYwQd/prrZapNYVn73Bi+Bl2srFRj8YSqrmbAh4gjwTa7zxZh0ZSGzGQhIoONKCTEsYraBgSZxc3c0lMGk9y6lRstlTcripKipayd+djjB5/C4piDdhG89Sjqv7vn6omoAUREa1ICS531wLFDq5ZjFAUcqeeFXIbV1Mttrhkv2O2uGRczaFNWlojx7tTGGnf2i/54JFb8LicxKekc8FdTxGb2HF/0VRbSVyy/zsYl5xGc23wbIZWwR7uEkEg3C4nrz/0B45bcB6x8R17rGory0lO8/dAJqdlUFsR2tKipHfjoSvKysjI9PdyZmRmUlEWmle7/ywSdFcM0PMRoYEqbXmPh+O2Ofz0GV1X0L98bjVbDlXz1R+CB8q09Si1DpRh7u6N1MLPcx6VEsu3F8+kzqXx3r5yrv1sOx+fP7VDQdDO1sNfVdhOMSm9hXHCWGMrcXv4U3E5zw4bhD2E7YVbafdMdCXc6/Av2pqyFypTOFqI2BlBDAs5wNfUcyYddfr+FsuAR0PDE0JudnXlGgoOvuH7PHz09aSkTfN9jonNITZuMNs23UF97bbOAwLbuUfD+a5lSEsaJdu/YMdnf/V9nnLeneSve59ZP3q0C+7Zdi9fyH2FPHxeZ7X/W9n+1Yd89vSRtevzf/s3Bo2bSu6EGfzowX/S0lDL5s8Ws/Sh33DZ/a8Sl5TWydXaPB9Sdlg2+2gM6W0ZyuT166Vv88xdR5ZKbn/mDcZOnw14gwkfXXgdUhr89K4Hgl9MtH2ew3Gjh/a2LnnrDW6/8Qbf5xcXv8fM444P8R5taGtviN/v4bO7ds//QropBtrPhCJJdkYCpRX+s5DyykZUVSEtJbhL+QiKt/NXuvbr/t9zq1j6XT5f3HsGg9I6v292cgylbUqCltc5US2CtARHGHcVCGvoM/NWbBaF4cnemejUrETWldXzt40FPDFvbLtzM2PtlDX7e0sqWtyoiiDVEXi22Km9igIWC+ihicRtLU6qNJ0Ldx8JmNSBtU0tvF5Zw8ZJo7C0eWnTrSqVbcoJV2s6KpCshvM8eq9rsdvCaNMeBwq52CntYKkgCZU6/O2tR8MCxHfh/bFag7dJSplEXHzekTa25PbXsSVhs6XicnY8o1OtiWge/01vNK0R1Rp6rINVDS7yMkbMJGnAEVd62e4VuJvr+Obpq33HpDTY/cXz5K97nxOu/UfA69jjknE3+XsB3M212GKTQ7YXQLUEHyhGzPgeA0ZO9H2OT/XOPm2OWGwDBpMyYDA5oybx3PVnsXXZEl9MQFviktNpauMFaK6rJrZT8eBFEd6hKsjmlgBMP+l0Rk46IghbMwY0j4dHfnUNFYX53Pni4k69AgDJ6ZnUVvo/M3VVlSSlZ3TQoj2hiLOTz1zAlOkzfZ+zc3I6ObtjMrKy2nkBKisq2nkLOuZ/P1agle6JAaV7HWkwZh+TxwfL/APSPv16J9Mn5obUKfpQrIAENSboqUcjpeT/nlvNkjX5LL/ndIZmBe8EZ4/O4IO1BX7HPttYzPTh6SF1jD6EAEc4gicwko7TeGZlJ/HRgQq/Y8vyq5mamYC1k93nAiEOz+yV2DiMhtB2TZsTH8d7o/L8jv22oJShDhs/zUhtJwQApsTG8Hm9f3bEioYmxsc6sIYzi7R4nx81hDiFzvBgUISb0QR+tkbiYD3+28luoZmhOFDD7GgUi0JcXHCRZrE4sFg6F56apxG3uwa1k4DCuPihNNTtIDN7nu9Yfd0O4uKHhWavUHDYgncxqi0W1XZkKWXgpNPIGDbT75z1i+9kwLiTyJlwctvmPpJyxlB1aCNDpp/jO1Z1cANJA9sL4UC0FvGxh/Ce2mLisMWE8uxINE/HHr6cUZM4tGkV08+6wnfs4KaVDBwdPEDaflj8WkNQAzHx8cTE+3sHW4VA6aH93PXSOySkBM/YGDVlGlu+/YoFV/3Md2zzii8ZNWV60LbgFQKhvKbxCQnEJ4QuOjvimJmz+ebzZfz0hv/zHft6+X+YOmt2SO1DEVr/K3Q5gFBKCbaO89cD0djkYuO2QjZu81YjO1BQzcZtheQXedX8bQ8s5cqFR0qv/uzy4zhUVMPCe99lx95Snv/nKp7/52puvnZewOt3iDUdhIJICi9//oZnV/HaV/t49aa5JMSolNY0U1rTTMtRATu3v7qOKx//2vf5ulNHc6iiiZtfWMOOwlqeX7aH55fvYeHZ48O4swBrDEr24DDcWXD3t3tZUVTDofoWtlY2cvfKfXxdVMNFo7MAuOvbvVzz6RFx9ZMJAylocHLr17vZWd3Ey9uLeXl7Mf93TGjr937Eejsa+8iOg6XaEmdRGBlj9/sXowiSLRZGxni9Ig+XVHBr/pHAz4vSkijxeHigqJx9TheLq+pYXF3HjzOCd2RHY88djOH2kDwxdHsBXqOCHTRTjoe9tPAYJbRgcALeIM03qeDvHLF3PslU4eFVyinCxRfU8QV1fL/DJYXAxAzIxGq3MmZ06DOwVnTdSVH+OzQ17MflqqKhfjf79zyFqsaTnHJk0Dm47yWKC47sKZGRdRL1dTspK/4UZ0spZcWf0lC/k8zsk0K6b1KynfgYa6cBt4GwxSQSnzHE759QVGxxKcSlHnmHt370MHu+OrKnxOCpZ1N9cAMHVr9NU1UBB1a/TXX+JoZMOzuk+ybEWpFSkp0YjgfPi9vZzNevPU7x7s3UlRdTtn8Hn/ztbhqqyhg95xTfeR89/lu+evUx3+ep37+Mg5tWsvrd56kqPMDqd58nf/Nqpi24LOg9ByQ5EECSPfw5na5pPHzjT9i/dRO//MvfMXSD2opyaivK0dxHxMuTt9zA6w/d5/t85hXXsmnFFyx59gmK9u9hybNPsGXlV3z/ymtDuq9VESGJl0DUVlezbfMm9u7cCcD+PbvZtnkT5WVHMq4WXns1D9z1O9/nq39+PV8v+w9/f/hB9u7axd8ffpAVny/n6l/8MmR7+wvd8AwYYMsEQk8lW7s5n3mXHFkbvPm+JQBcef4MXnjoMkrL633CAGBobhofvnAtC+9dwt9e+YaczCQeu+u88NIK4bCdAlJDm9G08tQn3vzkeXd+7Hf8H9cfx1XzRgJQUtNMQeWRmerQrAQ++O3J3PzCGv728U5yUmN59OqZoacVAiRkIxQVbCoiYxCyvCB4G6C8xc01n22ntMlFol1lQlo8S86ewrzBXpdjaZObgsYjdRbykmJYfPYUbv16D89sLmRAvJ2/zB0VdlohgJI1BKnrxIwbT8v6yJVPrvRolBy1rj/IbuOpoYO4v7ic16tqybSq3J6TFVZaIYBj7HiERSFtxsTgJx9FNRpPUkIDOolYGEEM95BLBt4Zey06VUctC2Ri5TcM5FUq+Iw6UrDwIzLDSisESJ3mFZN5Q5Kx2y24XKHH6wih0NJcTHXlanS9BdWaSELiKPKG/8TPg+Bx1/it/cYnDCNvxI8pKfyAkqIPsNnTGTr8J8TFd55WCGC3W8hI986cRw5KYnUXCiUFw1lf4SeWkweOZeKCRexd8Qr7VrxGbHI2ExcsImnA6JCuNzwnCV1KBqXE8N2h8DKlFMVCddEBtn3xPi31tTgSkskeMZ6L73uB9MEjfOfVV5b6yqMDDBwzhQULH2DF60+y4s2/kpyVy4KFDwQtVAQw6HCgcvhLelBVWsza5Z8AsOgc/8nVXS+9w/hZ3sJulcVFfvaOnjqDmx56mjcfu5+3Hn+A7Nw8bnr4GUZOnkYwEmwWX5VHVYiwAx8/++gDfvPzI6Ljl1d5vSk33vZbfnX7HQAUFRT42Ttt9hyeePEVHvz93Tx83z0MHjqMJ198lWNm+HueOsKuKP0irRBAyG4UX5auMijt23XoAUg/HWJHIoSC8cEN4G4K3iaa5M5BmeF96J0v/xF97fIoGxSE2ETi7n8HqWnUf/pvim8PntMdbYa+sRjH2PF46hr5V3LwjizaTLz7l4z/7c9QVJUfXf02W7dFfnCNJBMnZPHSP85H0w3eWLaXVz7bHW2TgvLuvacR57BSWNPMY5/vjbY5Qbl0Ri6TByajKIL39lT0+Yp5gxPtzBrgXZaqdHpo6mPbWbdFAXLjw4/b+m+le3UGbOn0dBBhRLAPOKIWU4LPaqKNSBmKNDSkpmEZHHoZ42hhGeKdeQlVJWbK1ChbExxhs2Ef4V0esCbFEz98cJQtCk7arMkIRcEwJOPHZUXbnKCMH5eJYUgUIRgzODna5gQlJz2OuMMz7OwkB+p/gXs4Ly3ON9NO6YJ3oLdJdVgxDm9UZPsv+H5tYcZN/bfTzV0LLRA3IviJ0cSWjVC967nS0BGDw9zXoLdRVBg8B6GoCFVFnXEyWLqZ9NHDqDNP8e1aaMsZiGNimMs4vUzCKacjrN7O09B0hl4RvE55NIkZkEn2ycciFAUpJWcv6PsC0WujRFEEU0elhx030NucPHWgL6VQVRQmBdl/JNoMSY0lJdYbwG1ISV5S+HEOvYkiYHCiA0UIhBDEhRMAHiXiVcXctTBUpDQgYUqETOkhEiZ77cS7ayEDZ4C9+1GqPUbONITtSNSviEvEMrmL+bW9QUIylilzfbsWSk0j5aJLo2xU56RecgXycPqjoloY+YtL/bY07msM/+mFvgwni0Vh7JgMxo0NP66jtxg3NpMxozNQfLUjBGfM6rveF9UiWDBnyJEtgQ3JccPDC47ubeYMS/OJF0UIBiXYsYeQEhktBsbbsR8107YIQWw42VW9jCIgVu0/8QLQbc+AgrBngzX8COdeQXFA3Ei/gBKEgCFzo2dTEMTwk73Few4jDR3r3HOjaFHnWGef4RfEJVSVpNPOxJKcHD2jOsExZhwxEyYiLEdmJo6MVAad03HKWjQRqsqo6y9FOcpeTTO48PxwslN6lx9eMB7tqPVgRcBZxw7xubT7GseOzyb5qLVhRREMTo0lp4/OtmNtFqYMSvaJF/BqxaFJ4aVO9yYjUmIxjpplSylJ6MPegfiwapb8b9BtaSalAYnHBD8xGiRMov2vKBDDTz5ce6CPkZyHSBvhy9kHrzfDMmw8Sm54KXC9gtWGOvccEG2+Y4uFlAsviYpJwUi5/Epkm6JFhqYz9tdXd9Aiugy+4DQcWf6zVFVVOOO0UaSnhVjauhdJT4vl9FNHoR416xNCkJrgYO6kAVG0rGMuOHFYu6qDuiGZO6JvTnKOHZYWMON4REpMn8yLT7GrpMdYfdsXg/eZcFiUPhk7IKBPC5WeottiQAgFET8WHLmRsCdyqCmQNLOdm0cIAY5ExLg+NtsWFsS0nyCN9iljUtewXfYbUPrWA2o78ypEQkr771hRSLvm59iG9K1gzdhZc0he8IN2SwKKaiF91mRGXHtRlCwLjC01mWlP3OHnKWpFUQS/vfXEAK2iy+9uOzGgB8AwJNefM4GEmL4lwr8/ezBjBqf4zbLBW4Bo2pAURmYELuMdLTLi7cwfk+k3sMKRwXVCevcLlUUSAcwYkOjnFWhFSklaF2ok9DRJNgsWQb9aIoAIiAE47B1IOxVEX3nRBaSfSkelJIVQYOTpkDq8d83qBDFmASTmeOMa2v7MoqIMGIL11L6zFq8MHYc670I/L8bRCEUh5777IYw9B3oSJS6OnHvv98UKtEVKydRHbiN2cNfKnvYE05+4A1tyQsDvWFUVTpw7lNNPHRkFywJzxmkjmXvCUD+vQCuKIoiPUbn+nAlRsCwwWSkxXHfW+A6DxAxD8sPpuSFVJOwNBHDx9NwOy/kKIRiVEkuqo+8MsGPT4ki0WdqJF/Daa1UESX1oFm5XBIlWS78TAhAhMSCEApZYSDkhEpfrPonHgC3LP1agLdJATL+2bywXJOXC6LM6tVcIBevpl6MM7AMCxmrDfsWtIDvOExaqimPCJFIvu7IXDeuYzF8tQk1L94sVOBohBIrVyuwX/tTLlgVm0A/mk3fpApROAhsNQ3LbLXNJS43+WnF6Wiy3LToRo5Ncd4uiMG/qQOaM7xupkTf/cDKqRXTY8SuKINGhsmBC31jemDsyndyUmHZejKORwKwBiX1iuSDJrjI2LbbTgVUIQZLN0icq/QkgrQ8Jqd4mYpJXCAWRMBHioxzY5BgMyccGVXZCsUBcOmL6NUR1MwpHEmL2/wU/D0BK7D+9B5EYXundiCIU7JffgkjNDujF8DtVCDJvXEjsrDmdntfTJJ97ASkXXNShEGhFsapkz5vN5D/8qpcsC0zS+JHMfukBZJAd/xRFEOOw8vBfzsQRxU7M4VB56M9n4HCoQYMEDUOy6OIp5IWwz0dPcvUZY5gyIh01SC65IgSzh6UxY0h45aMjzcjMeM4YPyBov6YcTtubmZ3YS5YFxmFROC6M9MxMh5VoJ0Ok2VVU0bE4/F8nov4vKSWkzofYKAW72XMg4yxCHdyFUGDgdMTUq0JuE1FsCYjjF0FMStCBFbzLBSI5HccNf4H4KORBC4Ht4l95UwlDdf8LhdzHn4paMaLE084k+47fh5UvPP72nzHu1tBqrUeahJF5zP/8ZdS4GEQIRU9UVWHc2Awe+csZ2O2972612y08+uCZjBubEXB5oC2KInBYLfz5Z7MZGKX17YtPGs7F80KvjyKl5IKpg5g8KDq1B/LSYvnxnLyQtykRh1MNp0VJcNksghNzk4lRlYDLA20RQmARkBljjeyAFAapdrXfpRK2pVvliAPhu1z1MmgMfd+CbuMYApkLAKXz5YEASCmhcDVy7XMgQ6/53i1iUhEnLILY9JCEwNFIXUdWleJ88mZkm+1PewzFgv3yW7BMOynsF0bqOlLXKLzxeppWftNDBrYn+dwLyL7j9wChi5ej2PqHv7P5d49G2KqOSZ48hvnLXsSalNDp8kAgdN1g85ZS/m/hhzQ1eYI3iABxcVYef2QBkyZkYQmzWpumGzQ7NRY9vZL9JQ3BG0SIH58+mkvmhx9nIaVEAm+vLwx734LuMDornitn52ERIuzUTCklBQ0u1pTU01ulc2JUhRNzk4mzBo4T6AwpJZqUlLV46GCj1R4h3RQCQA+IAfD+UYUQyIYtUPM1yJ7snBRImglJMwDCFgKtSGlAzUHk2mehsTR4g+4w4BjE1B+DNTZsIdCK1DVoacL1xkPoW76NsIH+iMxc7FfcgpI7qkuDKuCNiJeSyueeovLZp0DruWdCiYsj81eLSLngIt+z2FUKly5nzbV34iytCH5yNxhx3cVMffhWFJs1bCHQiq4blJQ08Lu7l7F5S88+w5MmZnPf3fMZMCAhbCHQim4YeDTJ00u38eGq/Ahb6E9qgp2bLpjE7G6Ucm59llYdqOKDLSW4erC2vkUI5o/JZP7oTBCEPbC2IqWk2qmxpqSeRk/PTnRy4m1Mz0rEahHdstcAqpwaLUGWybqLKgTpDhWb0n+XBo6mR8RAK1IaoDdD1afgDG3nvbCwpkP6aWBNi8gfUxo6SInc9jbs/RQiradtcYjJlyNyZyOl0WXh0oo0DISioK1djuvtJ6G5PkKGHkYoqCedj23B1SCEr8pgd5CGgWv/Xop/uwjXrp0RMNKf2FlzyLn3/k6DBcPB0DS0phbW/uIeDr6+NAIW+hM3ZCCzX/wTWd+b1W3hAl5BIBTBq69v4u9Prw5rd8NQsNst/OK6WVx26WSkIbssBFpp/Z037q3kwbc2UV7bEiFLjzB/6kBuOHcCDqul2/aCt/xvg1PjrbUF7KloDN4gTHKSHFwyPZesREdE+jXjsFdja0Uju2si//3aFMExWQkMTnRE5BluvUaTR6fapdETkiDRaiHZ5u0fTCHgpUfFAOAb9GTjDqjfAJ4IzLDUJEiY7P1H170BHSGlhNqDyJ1LoXRTp1HzIaHGwOBjEWN/0C1vQEdIXYeWRtwfv4K25jNwdnNXRkXBMn421tMuR8kdGfGXRWoaCEH1G69Q89breAq6Pyu0jx5L6hVXkbzgB0hdj4gQaKVVdBV//BXb73+W8i/XdPuajuwMRlzzQ8bdeg2K1YpijWwAoGFIiovrefq5tXy2bC9ud/dEgc1m4ZT5I7jup9PJyUmMeDVBTTfQdMlbn+/lo9X51DS4un3NScPSuOik4cwYc3jTpAja3Hq9dYdq+GpvBcV1zuCNgpAWZ+O44WkcNywdCZ1mDXQFKSU1To0d1U2UNLq7PdVRFUFeooNxaXHd8gZ0RKuXoM6t0egxIjI1i7EoJNkspjcgAD0uBlrxiQJXKTRsgqY9QDgdlICYPEiYjIgZEpGZdWdIQ0coFmRLLXL/Mjj4FbjCnHkn5SKGzYPBx3o3ICLywqUVaRjeGEhNQ1vzKdo3SzGK9oV1DZGQgjrnDNQTfoCSlBbxQbUtUtMQqkrjyhXUvPkqjV9/CQEK7HRor81Gwimnk3rJFcRMmOi7Xk9heDQUq0r97gPsfvwVDrzyHp768GaGmXNnMPL6y8g971QQ3liGnuqUdN3AYlFoaHDxzpLtLH53G4VF4T3DgwYmcv654znv3HEkxNt91+wJpJR4MxMlX28pZem3B9myvzqsa8Q6VE6eOohzjs9jUEY8mm4EzRjoDrohsSiCgupmvtlXyeaiOrQwthIWwNgBiRw3LI1RWQm+6/UUhvTuJNmi6eytaeFAnRNXmO74JLvK8OQY8hIdvhTGnnqGW4cnCTRpBg0eHU+YWzUrwlteOMFqQVVERLwX/4v0mhhoxScKpA7uKnCXgrsc3JXe2AKpA4o3/9+aArYssGWDLQOhqD0uAtrbK/E+igKaKqB6H7L2INQeAncj6B5vbX6LDWLTEMl5kJIHKcMQ9gSfqOhNpK4hLCqysQ790E6M/F0YBXuQ1WVIjwukBKsNEZeEkjsCS+5olLyxiLRs7896Ob2mdRA3nC04d+3EuXUzLdu24j6wH8PZgvR4EDYbSmwcjpGjcIwdT8zESdhHjEJYrT0uWtrZ2ypYpKR+1wEqV22iet1WajbuxFNbj+50IVQVS4ydhJF5pE4bT9qMiaTNmIg1Md4nKnoTTTNQVYXy8ka2bitn+45yduysoLKqGafLW57ZYVdJT4v1bYQ0YXwmmZnxvra9au/hQbzJ6WF3QR27CmrZU1RHUWUTbo+ObkhsqkJcjJXhOYmMHJjE2CEp5GbE+6Lue/MZbvUUaIZBab2TguoWCmtbKKlrwaUZvkHealHISrAzKCWG3JRYBibHYLUoPS4C2nJ0t9/k0alyatQ4PdQ6NVy6gS69QsWieDcUSnFYSXWopDqs2FXFJyp6k9ZBXJcSl27gNiRu3Rt0KA+LSCEEigCbomBXBDaLQG1TBtkkML0uBtoiDw/+Hf2Rgv28t5GGfniwDNw5Bvt5b+MN3DM6XO9vDezrzcG0M6SUoGm+LYbD/Xk0MDwehMXSYXCl4fYg1I5/3tvoh2eCHc3wg/28t5FSohuywxm+ISVGJz+PBrph+LbrDfxzidKHSt4aUiLo2J5gP+9tWoetjseNzn9u0p6oiwETExMTExOT6NJ3pLSJiYmJiYlJVDDFgImJiYmJST/HFAMmJiYmJib9HFMMmJiYmJiY9HNMMWBiYmJiYtLPMcWAiYmJiYlJP8cUAyYmJiYmJv0cUwyYmJiYmJj0c0wxYGJiYmJi0s8xxYCJiYmJiUk/xxQDJiYmJiYm/RxTDJiYmJiYmPRzTDFgYmJiYmLSz/l/6iCrDqZ4mQgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.hstack((a1, a2)), 'a1，a2，一维堆叠', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "5cd178cd-4c6d-48bd-aa53-cdd041196a00",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.hstack((a2, a1)), 'a1，a2，一维堆叠，反向', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "742dd9a1-dcc9-438a-958a-17a60cdc38f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1, -5],\n",
       "       [ 2, -4],\n",
       "       [ 3, -3],\n",
       "       [ 4, -2],\n",
       "       [ 5, -1]])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.hstack((a1.reshape(-1,1), a2.reshape(-1,1)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adbfa562-2150-467a-92d6-7b8cc288aacf",
   "metadata": {},
   "source": [
    "### 拼接numpy.concatenate()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "id": "771f7d16-da59-4960-8f04-e5fafb2c1608",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2],\n",
       "       [-1,  0,  1],\n",
       "       [ 2,  3,  4]])"
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3_by_3 = np.arange(-4,4+1).reshape(3,3)\n",
    "A_3_by_3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "id": "8939a9fa-ea55-4cd7-988d-6078f9764ed2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_3_by_3, 'A_3_by_3', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "51e0337b-fac7-48c0-a0be-87f63536b1c4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4, 0, 4]])"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B_3_by_1 = np.array([[4, 0, 4]])\n",
    "B_3_by_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "f8b5c848-d837-4527-9568-d36b3f822931",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAK8AAABHCAYAAABxhReaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADE0lEQVR4nO3dT0jTYRzH8c9Ph5iENCY4FYqywjkzLekyCdIkErq4NMFLf0gSvGak1MGDXjpWUAR2SamIuuQpyJAsQdCLaEQWHhRS829ao23dhNnFOe15PuPzuu1hhy983zyHwe83JxqNRiFCKMX0ACJbpXiFluIVWopXaCleoaV4hZbiFVqKV2gpXqHliufLYyUFOzXHf+cbGQeib02PsT2cU8m3m03QzSu0FK/QUrxCS/EKLcUrtBSv0FK8QkvxCi3FK7QUr9BSvEJL8QotxSu0FK/QUrxCS/EKLcUrtBSv0FK8Qsu6eD2XG+EbGUf29ZumR0nIk+4+VFS24UhxM2pqOjA09Nn0SAmzbTdWxZvuL8KeYB1+fdrcA3i26u0dQmfnczRdO4tXL9twvOwgrjbexdTUD9OjbZmNu7EmXmdXBnI77mC6/RbCy0umx0lI1+M3CAYDqK0tR35+Dtpa6+D1utHT8870aFti626sidfbehsr/X1YHfxgepSEhEJ/MDo6ifKAL+Y8EPBheHjC0FSJsXU3cb23YadknqlGekEhvjWcNz1KwubnVxAOR+DxZMacZ3kyMTNrz621WTbvxni8rmwvsltaMdl0BdFQyPQ428ZxnJjPUUSx4ch6tu/GeLzphX64PFnY3/1i/cxxuZBxrAzuCw0YP1EMRCIGJ4yP270bqakpmJ1djDmfm1tG1obb2Ha278Z4vKuDHzERPBdzltPegdDXCcx1PaIKFwDS0lzw+/fi/cAYqqpK188HBsZQWXHU4GTxs303xuONrP7E7y+xv4FG1tYQXlz455zFpYun0XKjC0VF+1BacgBPn/Vjenoe9fUnTY8WF9t3YzzeZFRdXYb5hRXcv/ca32eWcPhQLh4+aEZensf0aEnFied/2JLuTYR6S6SV9JZISXqKV2gpXqGleIWW4hVaildoKV6hpXiFluIVWopXaCleoaV4hZbiFVqKV2gpXqGleIWW4hVaildoKV6hpXiFVlwPYIrYRDev0FK8QkvxCi3FK7QUr9BSvEJL8QotxSu0FK/Q+gsvc+TsYVo1igAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 200x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(B_3_by_1, 'B_3_by_1', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "bfa9c59c-1174-4858-a2bb-ea2555dc1d41",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4],\n",
       "       [0],\n",
       "       [4]])"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B_3_by_1.T\n",
    "# 转置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "id": "d904aa08-10a9-4542-ab85-90267d44ef18",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAACuCAYAAABk+xBVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAADsElEQVR4nO3dX2iNcRzH8c/hpJGW01ltKPI3s5Gx3EzKn5KVG/OvlPzParfIFhcu5sYlitTcICRuuFJIhlptN9oko11Y2Wb+zHCyHReiHnY+bRc7v0e9X3f79Vx8e/ecVjvPs28im81mhRFNCD1AnBHHII5BHIM4BnEM4hjEMYhjEMdIjuXi9mWLxmuOvCpt6xjVddw5BnEM4hjEMYhjEMcgjkEcgzgGcQziGMQxiGMQxyCOQRyDOAZxjNjFSe89qNK2DhUfPhZ6lHjFKSgr17Sabfr2YnR/4x1vsYmTmDxFMxpPq/vkcQ19/hR6HEkxilNSf0IDjx5o8NmT0KP8MaavZsZL4YZqFSxarDc7t4QeJSJ4nGRxiYqP1Kurdp+ymUzocSKCxylYXKZkukhzrtz8c5ZIJjVleaVS23eqY+VSaXg4yGzB4ww+e6rOmk2Rs+knG5V53am+povBwkgxiDM8+EXfX72Mnn39qqGPH/45z7fY/LaKo+B3zki69u8KPYIk7hyLOAZxDOIYxDGIYxDHII5BHIM4BnEM4hjEMYhjEMcgjkEcgzgGcQziGAn+0UduY/v2IXt/nMbIs8SaUV3Gx8ogjkEcgzgGcQziGMQxiGMQxyCOQRyDOAZxDOIYxDGIYxDHII4RmziXrzzQ2nUNWrK0Tps3N6qlJeyj/VJM4ty926JTp26o9tBG3b7VoBWV83Xg4Bm9ffs+6FyxiNN06Z5qaqq0desqzZs3XQ3121RSktLVqw+DzhU8TibzQ8+fd2lVVWnkvKqqVK2tnYGm+iV4nP7+AQ0NDSudLoycF6UL1dMb9kXY4HF+SyQSkZ+zyuqvo7wLHieVmqqJEyeot/dj5Lyv77OK/rqb8i14nEmTkiorm6XHze2R8+bmdlVUzA001S+xeBltz+71OnK0SeXls1WxbK6uXX+k7u5+7dixOuhcsYhTXV2p/g8DOnf2jt71fNLCBTN04XydZs5MB51rbE9Z8CABfiOOQRyDOAZxDOIYxDGIYxDHII5BHIM4BnEM4hjEMYhjEMcgjkEcgzgGcQze8TRYVWnwsTKIYxDHII5BHIM4BnEM4hjEMYhjEMcgjkEcgzgGcQziGMQxYheHbYw5sI0xB7YxGmxjzIFtjLkGYBtjbmxjNNjGaLCN8T8V/M4ZCdsY/wPEMYhjEMcgjkEcgzgGcQziGMQxiGMQxyCOQRyDOAZxDOIYxDGIYxDHII7Ba4wGd45BHIM4BnEM4hjEMYhjEMcgjvETPHDqIejzupYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 100x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(B_3_by_1.T, 'B_3_by_1.T', 5, -5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc033434-e96a-4971-840a-2d9d90df0c9e",
   "metadata": {},
   "source": [
    "#### 沿行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "b65545a5-e6aa-4a5e-8a5a-8006d2788161",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2],\n",
       "       [-1,  0,  1],\n",
       "       [ 2,  3,  4],\n",
       "       [ 4,  0,  4]])"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.concatenate((A_3_by_3, B_3_by_1), axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "id": "e217a2b9-1481-4442-b537-cad32a449f79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.concatenate((A_3_by_3, B_3_by_1), axis=0), '拼接，沿行', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "id": "1fe8d6b1-32e4-4ec3-8abe-969ff937d218",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2],\n",
       "       [-1,  0,  1],\n",
       "       [ 2,  3,  4],\n",
       "       [ 4,  0,  4]])"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.vstack((A_3_by_3, B_3_by_1))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f4a6c81-3f41-4b0a-88b2-4767a55916ee",
   "metadata": {},
   "source": [
    "#### 沿列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "7b3b83b0-8d0f-4da4-876b-39a167f3f0fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2,  4],\n",
       "       [-1,  0,  1,  0],\n",
       "       [ 2,  3,  4,  4]])"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.concatenate((A_3_by_3, B_3_by_1.T), axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "id": "685f9752-73bf-4d3e-a80a-e28ef089efe8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.concatenate((A_3_by_3, B_3_by_1.T), axis=1), '拼接，沿列', 5, -5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "cdd3d26d-0d73-4ab6-a356-75afc6c04433",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2,  4],\n",
       "       [-1,  0,  1,  0],\n",
       "       [ 2,  3,  4,  4]])"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.hstack((A_3_by_3, B_3_by_1.T))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "4c4d71bd-32f6-4182-a0de-d3eda663a098",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -3, -2, -1,  0,  1,  2,  3,  4,  4,  0,  4])"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.concatenate((A_3_by_3, B_3_by_1), axis=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3da7accb-6159-4f6c-a498-a1d1b1055b22",
   "metadata": {},
   "source": [
    "### 堆叠结果为三维数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "53445c1f-1987-4a64-aa36-8ce61723f790",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = np.arange(1, 24 + 1).reshape(4, -1) \n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "6c6741bd-eabe-45fe-b961-56ac61f865e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A, '二维数组A', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "3ea7933c-bcfb-43c3-a6db-2878c9c026eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-24, -23, -22, -21, -20, -19],\n",
       "       [-18, -17, -16, -15, -14, -13],\n",
       "       [-12, -11, -10,  -9,  -8,  -7],\n",
       "       [ -6,  -5,  -4,  -3,  -2,  -1]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B = np.arange(-24, 0).reshape(4, -1)\n",
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "09bb57d5-58db-42e0-821f-d334e68ac65b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(B, '二维数组B', 24, -24)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e601483-d6fa-44e0-9517-b7e47bfd967f",
   "metadata": {},
   "source": [
    "#### axis = 0，前后堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "a407bb9a-51db-4384-bb55-a596eeaebb75",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[  1,   2,   3,   4,   5,   6],\n",
       "        [  7,   8,   9,  10,  11,  12],\n",
       "        [ 13,  14,  15,  16,  17,  18],\n",
       "        [ 19,  20,  21,  22,  23,  24]],\n",
       "\n",
       "       [[-24, -23, -22, -21, -20, -19],\n",
       "        [-18, -17, -16, -15, -14, -13],\n",
       "        [-12, -11, -10,  -9,  -8,  -7],\n",
       "        [ -6,  -5,  -4,  -3,  -2,  -1]]])"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_0 = np.stack((A, B))\n",
    "# 默认叠合方向 axis = 0\n",
    "A_B_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "3f935c85-0e85-47f7-a10c-cd01e1146721",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 4, 6)"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_0.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "4ace7520-a822-4998-8114-caff6019be45",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取出第一页A\n",
    "A_B_0[0, :, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "01c193de-475a-476f-a183-f532b7d5c380",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_0[0, ...]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "7f237640-3ee3-481a-b9e3-ac50570281e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_0[0, ...], '沿深度堆叠，axis = 0，第0页', 12, -12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "e0f765a4-0d36-49f2-86f5-aa81a722e370",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_0[1, ...], '沿深度堆叠，axis = 0，第1页', 12, -12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "df2c862c-cbed-43b6-9797-df80a82f39cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_0[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e73b8804-35dc-4712-b44e-a8070a3d229c",
   "metadata": {},
   "source": [
    "#### axis = 1，上下堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "a5766ed4-1ed5-4476-8a79-a96b9ed2cd4e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[  1,   2,   3,   4,   5,   6],\n",
       "        [-24, -23, -22, -21, -20, -19]],\n",
       "\n",
       "       [[  7,   8,   9,  10,  11,  12],\n",
       "        [-18, -17, -16, -15, -14, -13]],\n",
       "\n",
       "       [[ 13,  14,  15,  16,  17,  18],\n",
       "        [-12, -11, -10,  -9,  -8,  -7]],\n",
       "\n",
       "       [[ 19,  20,  21,  22,  23,  24],\n",
       "        [ -6,  -5,  -4,  -3,  -2,  -1]]])"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_1 = np.stack((A, B), axis=1)  \n",
    "# dimension 1\n",
    "A_B_1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "1a88949d-b5e6-4ace-a101-498d4408cbad",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3, 2, 4)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_1.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "02fa1d52-14c6-49cd-86a2-683aa6b2a755",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_1[0, ...], '沿深度堆叠，axis = 1，第0页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "51ab3af1-4fd6-4efe-a72b-201f34676d8f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_1[1, ...], '沿深度堆叠，axis = 1，第1页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "054226c7-1575-4525-94eb-2e606aa1067d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_1[2, ...], '沿深度堆叠，axis = 1，第2页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "c263a329-c014-4d63-a613-8ef9b63a21f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAABhCAYAAAD/Tby9AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAQbElEQVR4nO3deVhUZf/H8fcwMyAMyDbghrsCImIimlmmkqglZplp7mamXWY9prkmVGqaJupDpVlqiUubppm2qZULLoma9iihJYqCCCj7Oiy/P0ahecCMbM70/M739d99zpm5P5eXH8+cezxnNBUVFRUIIf5fs7N1ACGE9UnRhVABKboQKiBFF0IFpOhCqIAUXQgVkKILoQJSdCFUQIouhApI0YVQAV1tDk4IbmOtHHfE73g8J9r42zpGNR3if2F/439eLoBul37hW6OfrWNU0zsjgW1O/7xcAI8UJLBJ88/LNqwi4bbHyBldCBWQoguhAlJ0IVRAii6ECkjRhVABKboQKiBFF0IFpOhCqIAUXQgVkKILoQJSdCFUoFb/1702HIND8Bg1ljpt2qLz8iZ5yiTyfthTuV/r4YnX81Mx3HMvds4uFJ6I4+qi1zBdumitSADUe3o8rmFh1GnRgvKiIvJPnCAlKoriC4kWx9V/dhLGwYPR1q1L/qlTXJ43l6Jff7VaLp9nx2N8MAzHluZcOcdOcGFBFIXnq3J59g2jwYghOLdri97DneN9HiH/zC9Wy3RT83+Nxzu8N4bWLSgvLCLr6AnOzl1Cwa/mbBqdjlazJ2PsdT9OTRtjys3j+t6DnJsXRXFqmtVytX5xPA0H9MbZ15zr+pETnJ6zhLxzVX9m/i9NotGgfjj61Ke8xETWidPEv7qMzKOnrJYLIGDmeBoP7E1d/xaUFRaRfvAEP81YQu7ZxBqP7/TOq7Se8ATHJi8g4d/r/vY8Vjuj29VxpPhsAlcXza9xf6Olb6H3aUzyC89yYdhATFdSaPzOWjR1HK0VCQDnTp3I2LSJs08M4benxpr/kq5ZjZ1j1bze48bhPWYMl+bPI2Hw45RmpNNqzVrsnAxWy+XapRMp6zZxcsAQ/jNsLBqtjsCNlrm0To7kHD1O4sIoq+WoiXvXzlxas5EjfQYTN+hJNDotHT9dg9bJnE3rWIe6QQGcj1rJoQcGcnL0JJxaNuOuDSutmsvYrTOJqzayr8dgYvubc3X9oioXQN65C5yaMpfvOvVnf69hFCQl03X7WuyN7lbN5t29M2ff3si3XQbzXdiT2Om0hH5rme0mnwEPYLy7PQXJV62WR1ObH3D4q3ev+R2Ptzij65s0o8W2r0gc1J+S8zfOknZ2tNodS3p0FNnbNtf6/f/q3Ws6d3faHTzE2ZEjyI+LAyBw3z7SYmJIW70aAI1eT+CBWFKiorj2ycd/+r3v5O41vYc7XU4e4uSgEeQcibPY5+DTiM6H9tzRGf1O7l7Te7rTM+EwR/sPJ/NQXI3H1O3Qji67NrOvfQ+Kkq/86fe+k7vX7I3uPJR0mP1hw7kWW3MunYuB8KvHOfDQaDJ+OFyr97+Tu9ccjO48ln6YXfcPJ31/VTbHht70OfIp3/d5iu47V5GwPKbWZ/R/7N1rGns9ABUlxVUby8upMJlwvCtY0Sx2Li4AlGVnA2Dv44Pey5vc2NjKYypMJvKOHsXQoYNiubR1zblKs7IVm/PP0t3IZsq8dTadizMV5eWYsnOUioX+Rq6SW+TS6PU0GzsEU1YOOT/fvhx/J73rjWzXf5dNo+Ge9W8Q/8Yass9Y77IQbFT0kguJmFKSMU56ATuXuqDT4zFmHDovL3ReXopm8Zkxk7y4OIrOnQNAbzTPb8q4ZnFc6bVr6I1GxXK1iJxJ9o9xFCScU2zOP8tv3iwyD8WR90vN2ewc7Gkd+SJXtuygLC9fsVyBi2aRERtH7hnLXPUe7EF42nEezjxFy+fGENt/LCXXMhXLBRC8dBZp++PIPl2VLWDG01SUlpIQHWP1+a22GPeHSktJnvY89SPn03rvESpKSyn48RB5B/YpGsMnIoI6fn6cGz6shr3/dUWjART6mbqW8yMw+PtxcmBNuWzLf1EkLgG+/Niv5mwanY6g95ahsdMQP+0VxXIFLYvENdCXfb2q58rYe4TvuzyCvac7zcYOptP65ezt/jgl6dcVyRbyViRuQb7suq8qm3twW/z+NYqvgwcqksE2RQeK489wcehA7Jyd0ej0lGVl0mTdRxTFn1Zkfp+X5uDaM5RzI0dgulq1CGLKSAdAbzRSmp5euV3n4Ynp2rVq7/N3azl3Dp5hoZwcNIKSVOstzvwV/gvn4N03lKP9R1B8pXo2jU5H0JrlODbxIe7R0YqdzYOi5lC/XygHwkZQVMOCVllBIfnnk8g/n0Tm0ZP0OvUNTUcP4tySd62erWP0HBo9HMru+0dQ+Lts3t1CqOPtyYCk7yu32el0dIiagd/kUWxv/sDfmsNmRb+pPC8PAH3jptQJCCRjZbTV5/SZE4Frr178OnoUJcnJFvtKLl/GlJ6GS9euFMbHA+ZrO+dOnUiJsu5qd8t5EXj27cWpx0dRfCn59i9QkP/rEXj3CyNuwEgKky5X23+z5IYWTTn6yChMmVmK5ApaGkGDh8M40GckBRer56qRRoPWwd66wYCQNyPweTSMPT1Gkn/BMlvi+s9J3X3QYlvPb9aQuP5zzr//2d+exWpF1zg6Yd+4SeVY38gHB19/ynKyKU29gnOvPpRlXqc09QoOrXzxnjabvB/2UHD44B+8653ziYzEvV84iZOepSw/H92N6+6y3Fwqis2Lg2kxMdQbP4HiixcpvniReuMnUFFUROaOHVbL1fK1SLwHhHNmnDmX3qsqV3mROZfOzRWHhg2wr+cNgGPL5gCUpGdgSs+wWrY2i1+m/mPh/DRyIqV5+dh7m7OV5pizabRa2r8fTd2gAI4Pm4BGq608xpSZTYXJZJVcQctfpvHgcA4PNudyqHdjzmxzLq2TI74zniF1x3cUpaZj7+lG8/HDcGxUn+TPvrZKpptC3n6ZZsPC2TdgIqbcfOr8LltZUTEl17MouZ5l8Zpyk4mi1Ixbftd+J6xW9DoBbWnyXtUig/fUmQBkb99K6iuz0Rm98J4yA52nJ6UZGWTv+Jxr71n3e1cAr6Hm66TWMesttl+cNYvr27YCkLZ6NXYOdWgcGYm2riv5p07x67inKC+w3kfRhqPMuYI+tcyVMGUWaZ+ac3mEheK3dGHlvjYrlpmzL32LpGVvWS1b47HmbJ22b7DY/p9JM0n5aCsODevj/aD5o2bXvdstjjk6YCSZsT9aJVeL8eZc3b61zHV8/EySNmyloqwMF98WNPnwUew93Sm5nkXWsZ/ZHzac3HjrrnL7TjRn67XXMtuhMTNJXLfVqnPXRJHv0a1NngJbe/IU2NqTp8AKIf7RpOhCqIAUXQgVkKILoQJSdCFUQIouhApI0YVQASm6ECogRRdCBaToQqiAFF0IFZCiC6ECUnQhVECKLoQKSNGFUIFa3Y8uhPjfVKsnzJy+rtyje2ujrYeBxNwiW8eoprlLHVIKsmwdo0YNndy4VnzJ1jGq8XRoTK4p3tYxauSib0NxWc0/DGFLDtqQ2x4jH92FUAEpuhAqIEUXQgWk6EKogBRdCBWQoguhAlJ0IVRAii6ECkjRhVABKboQKiBFF0IFbPL76JcvnCfm7WjOnDhOeUU5jZu34MX5i/Cq38AWcSoteSWC3Tssfw3UP7Adyz/YcItXKC9q/kJ2bNnGsy9OZtDwoTbNsnrFOnZ//QNpqeno9Tr8Aloz4bmxtA2y7Y9xlppKWfHmRmL3HyP58lWcnZ3o3KU9z70wCi9vD5tmA9i96yibP9nDmdOJZGXl8cmW1/Bv08yqcype9NTLl5g94Sl69R/AE+OewcnZmcsXEtHbOygdpUYhXe9lSuTcyrFer7dhGksHvt9L/M+nMXp52ToKAE2a+jB19iQa+jSguKiEj9dvYfIzM/hkRwzuHm42y1VUVMwvZ84zbsJgWvs1Jzcnj6hFa5gy6TXWfxJls1w3FRYWcVcHX8L63M2rkasVmVPxom9c9TYdu97LqEmTK7fVb+SjdIxb0uvt8TAabR2jmvS0NP79+hssXhHNrOem2DoOAL37PWAxfn7aM3yx9St+O3uekC7BNkoFzi4GVqx+1WLbtFlPM3roNFKvpFO/gW3/oez/cDcAkpPTFZtT0aKXl5dz7OABHhk+mrmTJ3L+bAL1GjRi4Kgnubt7TyWj3NKpY3EMCeuBs4sL7YJDGDNxEm4enjbNVF5ezsI5rzBk9Aiat2xh0yy3YjKZ+HzzTpxdDLTya2nrONXk5RWg0WhwdjHYOopNKLoYl515naKCArauf58Od3fl5eUruLt7TxbPepHTx48pGaVGnbrey/T5C1i08j2enjyVs2dOM+OZpykpKbFprg/fj0Gr1fLY0CE2zVGT2L2HeeDucHqEPMRHG7awfNUi3NxdbR3LQnFxCW8ti6HvQ/fj7Oxk6zg2YdUz+t5vvmTVotcqxy8tiQagc7ce9B86AoDmvn788vNJvtm2mbbBHa0Zx8J3X+0kesG8yvH86BV07923ctysVWtaB7RldHhffjywj/tCeymSa9eXX7N0/uuV44XRS9ny4ce8uykGjUajSIaafLNzD4vnLqscR61YyF0d2xHcqT3rPl1FVmY22z/7kogX5/Pexjfx8HRXLNtXO/ay4NWVlePodyLo0LEtYF6Ymz1tCeUVFcyImKBYppt2fhHL3FfWVI5XrJpOxxB/xXNYteid7+uOb0Bg5biuuztarQ6f5pYfP32aNSf+5E/WjFJNl/t74B/YrnLs6eVd7RhPoxfeDRqSkpSkWK57u3cjILBt5fiHXXvIup7JkIcGVG4rLytj5dJoNm/8mI++3KZIrvt63EPbdlV/Qb28zesYjk6O+DRphE+TRgS2D2Bw+Gh2bP2KUeOGKZIL4P6enQkM8v1dNvPKeqmplJlT3yDlchor1861ydm8R2gw7YKqLmW869lm1d+qRXc0GHA0WF4TtWoTQErSBYttKUlJeCv81ZqTwYCT4Y+v13Kyski/moqHUbnFm//OFf7Yo3Tt3s3imOkT/0VYvwfpOyBcsVwGgxMGw+2LUlFRQUmJSYFEVQwGRwwGR4ttN0uelHSFVWvn4eZWV9FMf5TNFhRfdR8wfBRLI2YScFcwgcEhnDh8kLjYfcx7+12lo1goLChgw7sruTe0Fx5GI1dTUvhgxZu4urnRtWeozXK5urni6mZ5zavV6fAwetCkWVMbpYLCgkLWvbeJ+3rcg6eXJzlZOXz28XbSr6YT2ru7zXIBlJaWMX3KYhLO/Mayt+dQVl5ORkYmAK6uzjb/yjQ7K48rVzJIT8sC4MKFKwAYjW4YvdysMqfiRe/SI5QJ02fzWcz7rFn6Bg2bNmX6gjdo076D0lEs2NnZkfjrOXbv/IL83Fw8jF4EhXRi9oLFtz3zq5GdVsvFC5f4cuq3ZGfm4OpWF/+2vqz4YBktWjWzaba0qxns+/5HAIYNesFi3ztr5xHSuV1NL1PMD98fI+KlqhPb9KlvAfDMxIFMnPSYVeas1eOe5SmwtSNPga09eQps7clTYIUQgBRdCFWQoguhAlJ0IVRAii6ECkjRhVABKboQKiBFF0IFpOhCqIAUXQgVkKILoQJSdCFUQIouhApI0YVQgVrdpiqE+N8kZ3QhVECKLoQKSNGFUAEpuhAqIEUXQgWk6EKogBRdCBWQoguhAlJ0IVTg/wBSGniIaOW2+gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_1[3, ...], '沿深度堆叠，axis = 1，第3页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "ad48afc4-717a-446a-8f59-74078e81c3e2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取出A\n",
    "A_B_1[:, 0, :]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "97153f0a-1357-41d9-be59-a00eb47c15e9",
   "metadata": {},
   "source": [
    "#### axis = 2，左右堆叠"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "308c9102-72ee-4787-a972-7a0ae3f5c4c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[[  1, -24],\n",
       "        [  2, -23],\n",
       "        [  3, -22],\n",
       "        [  4, -21],\n",
       "        [  5, -20],\n",
       "        [  6, -19]],\n",
       "\n",
       "       [[  7, -18],\n",
       "        [  8, -17],\n",
       "        [  9, -16],\n",
       "        [ 10, -15],\n",
       "        [ 11, -14],\n",
       "        [ 12, -13]],\n",
       "\n",
       "       [[ 13, -12],\n",
       "        [ 14, -11],\n",
       "        [ 15, -10],\n",
       "        [ 16,  -9],\n",
       "        [ 17,  -8],\n",
       "        [ 18,  -7]],\n",
       "\n",
       "       [[ 19,  -6],\n",
       "        [ 20,  -5],\n",
       "        [ 21,  -4],\n",
       "        [ 22,  -3],\n",
       "        [ 23,  -2],\n",
       "        [ 24,  -1]]])"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_2 = np.stack((A, B), axis=2)  \n",
    "# dimension 2\n",
    "A_B_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "2636adc9-137f-43b5-9ad7-4f7a8e60b854",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 6, 2)"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_B_2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "bf2c5f43-25bc-4423-9daf-3ad68899398d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 100x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_2[0, ...], '沿深度堆叠，axis = 2，第0页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "8879e8c2-2dc2-4888-ba52-02b45b387acb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 100x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_2[1, ...], '沿深度堆叠，axis = 2，第1页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "7a7e2b21-5cc6-4e55-bbbb-8882681343e5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 100x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_2[2, ...], '沿深度堆叠，axis = 2，第2页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "6a09519b-c448-4d5a-b5dc-700a9f218a53",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAD7CAYAAAB6+/qGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAR+UlEQVR4nO2deVhU9RrHv8PMsA2bMIyo4IIKCEiKoIbhCrmEUdpVc0EzQx+jm2mlmFCpXdPcrrmkqSUu1c3UTLuVmisuiZKaIuGNRUE22fcZZu4fo2MTJIz2G96e5/08j3+cM7+Z98XPc85hzu/35Uh0Op0OTIti0dINMCyBBCyBACyBACyBACyBACyBACyBACyBACyBADJTBqcGdhPVxyPhfTEFV4sqW7qNBvg5K5o1jo8EArAEArAEArAEArAEArAEArAEArAEArAEArAEArAEAph078gUbAKD4Bw1Fdbd/CBzVSF7dgwqjh0xvC51doHrP+dA8Xg/WNjZozo5CXlL34P6ZqaolprFrYzfkLBuDa4lX4RWp4VHJ0+8vngpXN3aCKspTIKFtQ1qf01F6f69aLd8TYPX261cC51Gg+zXXkZ9ZQWcJ06Bx0dbkT46ArqaalFtPZDcWzcxf/qLCBsZiXHTZsDWzg63MtIht7QSWleYhMrTJ1F5+mSjr8nbd4RNQA+kPzcSdb/dAADkLVmILocT4TDsKZTu2y2qrQeyc+M69Arph6iYWYZ9bu3chddtkWuCxFIOANDV1d7fqdVCp1bDpkdgS7QErVaLC6dPoY1HByycNRNTRgzB3BejcO74UeG1W0RCXUY61DnZUMa8Bgt7B0Amh/OUaZC5ukLm6toSLaG0uAg1VVXYu/0T9OwTgrdXr0efAYOwLPZ1XL14QWhtYaejB6LRIPuNf8ItfjG6Hj8HnUaDqp/OoOLUCbO1cPz7b7Fx6XuG7bfuXrd6hw7EyOcnAgA6eXnj+pVL+H7fbvgF9hLWS8tIAFCbcg2Zz4+ChZ0dJDI56kuK0X7b56hJuWqW+r2fGAAvX3/DtkOrVpBKZXDv5Gk0zr1jJ6Rc+lloLy0m4R7aigoAgNyjA6x9/VG4oeFvUiKwUShgozCefuzSzRc5WRlG+3KysqAS+OspIFCCxMYWlh7tDdvydu6w8vJBfVkpNLm3YRc2FPXFRdDk3oZVFy+o3piPimNHUHX2tKiWmiRyQhRWxs2Db49A+AcGIfnsaSQlnsCidZuE1pWYkk8wZaLfplcw2n+c0GB/6f69yH1nPpzGTYRz1FTIXFygKSxE6YGvcefjDYBG3ewa9/grJ/qPfLMPexI+wZ38fLTt0AHjps1A7/4DH+qzmjvRL0yCOeHVFswjwxIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIYNJ8AiMGk6Y3k7v5iOrjkeiZch3p5TUt3UYDOtlbN2scn44IwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIwBIIIGRpfOuXouEYHg5rT09oa2pQmZyMnBUrUJuRbjTO7eUYKMeMgdTBAZWXL+PWooWouXFDREvNYvk7cTh8YL/RPh//7lj96Q6hdYVIsAsORuGuXaj65QokUinazHoNXbZsRkpEBLTV+nisato0qKZMQeb8WNRmZMBtxgx02bIV14YPh7aq5VZYB4X0w+z4hYZtuVwuvKYQCf+LfsloO2t+LLqfPgMbPz9UJiUBAFRRUcjd+BFKDx0CAGTOmwf/U4loFRGBO//5QkRbzUIut4SzUmnWmma5JljY2wMA6ktLAQCW7u6Qu6pQnphoGKNTq1Fx/jwUPXuao6U/5fKFJIwNH4gXR43E6sXvoqTojvCaZsmsuc+dh4qkJNSkpQEA5Ep9TFZdaPwDau7cgWXbtuZoqVGCQ/ohNCwcrd3aIDcnGwkfrcfcGS/hwx2fw9LSUlhd4RLc4+Jg7e2NtAnjG3n1D5N6EgBmmuj78b8HseZfiwzbi9esx4Anhxm2O3bpiq6+fpgcMQw/nTqBJwaHCetFqAT3txbAcdBgpE2aCHVenmG/urAAACBXKqEpKLjfjLML1HfEH/4A0Lf/QPj4dzdsu7iqGoxxUbpC1aYtcrKyhPYiTIL7gjg4hoXhxuQo1GVnG71Wd+sW1AX5sA8JQXVKCgBAIpfDLjgYOStWiGrJCFuFAraKB2fKykpKUJCXC2el2L8yIESCe3w8Wj0VgfSYl1FfWQnZ3d826svLoavV/z2L/IQEtI6ejtrMTNRmZqJ19HToampQfOCAiJaapLqqCjs2bUC/wWFwViqRl5ODT9d/CEcnJ4QMGiy0thAJrs/rz/9dE7Yb7c+MjUXRvr0AgPzNm2FhZQ2P+HhIHRxRefkybkx7scW+I1hYWCD9RhoOH/wGleXlcFa6IiAoGPP/tazJI+ZRMWnJC6+2MA1ebfE3giUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgCUQgNObBDBpUuekB835hNCb15FTVdLSbTSgra1Ts8bx6YgALIEALIEALIEALIEALIEALIEALIEALIEALIEALIEAQiS4vxyNHge+xOMpF9AnORHdNq+FjWcnozEuw8Lhv2Mz+l46g9Cb16HwpXVfasXiJRjUsw927/xMeC0hEhz7BiNn2y5cihyLX8ZPhUQqg//OzbCwsTGMkdraoOz8RaQvMU8ewRROHT2OlCtXoTTT0w+FLI2/Osk4vZk2JxZ9L52BXYAfys7p05v5e/R5YSv3diJaeGgK8vPx7/c/wLL1axD7ymyz1DTLNUHqoE9vakpKzVHuodFqtViy4B2MnTwRnTp7Nv2GvwizSPCMn4fSn5JQlZpmjnIPzWefJEAqlWL082PNWld4erPz4jgofLxxaVRj6c2W49C332Hl4vcN20vWrMRXn32BTbsSIJFIzNqLUAmdFy6AS/hgXHpuIupy85p+gxnpNyAUvv5+hu1jh46gpKgYY0dEGvZp6+uxYeUa7N75BT7/dp+wXoRJ6LwoDi7DwnD5H1GovZnd9BvMzB/TmxGjn0XIgFCjMW/OfBXhTw3HsMgIob0IkdD5vXioIiNwbZo+vSl3vZ/e1Nbo05syJ0dYtW0Dy9b6/LBNZ/33iLqCQqgLCkW09UAcnRzh6ORotE8qk8FZ6Yz2HTsIrS1EQtso/fk/4Evj9Gbq7Fjkf6lPbzqHD4b3yiWG17qtXwUAyFy5Flmr1opoiywmLXnh1Ramwast/kawBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAKwBAJwhJYAJs2s/aD0FtXHI/FkYSru1N5s6TYa4GLl0axxfDoiAEsgAEsgAEsgAEsgAEsgAEsgAEsgAEsgAEsgAEsggJBV2Z1ejYYq4kkounpCW12DkvPJ+HXhclTd0D8AVSKTocv8WVCG9YdtBw+oyytQdPw00hatQG1uvoiWmsXm9dtw+LtjyM8tgFwug7dvV0x/ZSr8AroJrSvkSGgV0hs3t+zEuaFjkPTcC5DIpOj15RZIbfURWqmNNRwCfPHbig04M2QULk2OgW3njuixY4OIdppN+w7umDM/Btv3bMKGbavRpq0bZs2Yi+KiEqF1TbqV/bB3UeUurTAo9SzOj5yA4jNJjY5x6NkdfQ/txonHBqIm+7ZJny/qLmplRSXCQyKxZtMyBPUNNPn9pO6iyu5GaNXFfx6hldnbQafVQl1aZo6WmkStVuPr3QdhZ69AF+/OQmuZ5QGo3otiUXwmCRXXG4/QWlhZomv867j91QHUV7Tcs5gBIPH4WcS/uRg1NbVwcXXG6o1L4dTKsek3PgLCjwSfpfGw9/XC5ejG0/ESmQwBH6+CxEKClDfeEd2Oge8PHsGQPhGGfz9fuAIACAx+DNu+3IiNCf9G337BiHt9MYruFAvtReg1wWfJAqhGhOH8yImozrrVsLhMhoAtq2HbwQNJz06GurjEpM+/x8NcEyorq1D8u/9cV5USVtZWDcaNiZiMiGeGImqa6Tns5l4ThJ2OfN6Pg+qpcCRFTnqgAIVnB5x/JuqhBTwsCoUtFArbJsfpdDrU1amF9iJEQrdlb8NtdAR+njQTmopKWKr0EVpNmT5CK5FK8dgna+AQ4IuL46dDIpUaxqiLS6FTi/2hG6O6qhrbPt6FJwY+DhdXF5SVlGHPF/tRkFeAwU8OEFpbiASPqfpDN3j/DqP9v8TMQ87ne2HV1g2q4UMAACHH9xuNOR85CcWJP4lo64FYSKXIzLiJb+f8gNLiMjg6OcDHzwvrP10Fzy4dhdY2y/cE0fBqC+aRYQkEYAkEYAkEYAkEYAkEYAkEYAkEYAkEYAkEYAkEYAkEYAkEYAkE4PQmAUya1NlnS3M+4ZmqVJSrU1q6jQbYy5u3co9PRwRgCQRgCQRgCQRgCQRgCQRgCQRgCQRgCQRgCQRgCQQQsiC46+vRaBv5JOy89OnNonPJuLpgOSrS0g1jfN6KQbvnnoKNuxu0dWqUJF9FyrurUHz+soiWmkSj1mD9hzuRePICsm/lwc7OFr37PoZXXouCq8pZaG0hR4IytDfSN+7EiYFjkDhSn94M+eZ+ehMAKtIycHn2QvwYPBInw8ajKisbIfu3wlLZSkRLTVJTU4vr137DtOljsOM/K/HB6nnIyszB7Jj3hNc26Vb2w95FtVS2woisszgZPgF3EhtPb8rsFYjIu4hTIyaj8NhZkz5f1F3Uq1fSMPn5N3Dg0Mdwa2P6E2lJ3UWV301v1v1JelMil6Pj1LFQl5Sh7EqqOVpqFhUVVZBIJLCzVzQ9+BEwS3rTf2ksChOTUH7NOL3ZevhABG9bCamtDWpyC5A4cirqBIf0mkttbR3WrkrAsBH9YWfXdKzqURB+JASsioejvxeSpjRMbxYeP4ejfZ/BiUHjkH/oJIK3r4alq9iL4D3+e+A4QoPHGf4lX7hqeE2j1mD+G8uh1ekwN2668F6EXhMCViyA28gwnAqfiKrMhuHBPxJ2+XtkJnyFtOWbTKrzMNeEyspqFN0pMWy7qpxhbW0FjVqDeXM+QPatPGzYuhBOTg4mfe7vae41QdjpKGBlHNo8HY5TQyc1SwAAQCKB1MpSVEtGKBQ2UChsjPbdE5CVdRsbty56JAGmIERCwOq34TEmAmfH6NObVq3vJjNL9elNqa0NvObOQO6BH1GTWwBLFyd0ih4Pm3ZuyN7znYiWmkSjqcebs5ch9dr/sGrdAtRrtSgs1F+fHB3tIJfLhdUWIsEzWp/eDP3BOL15MXoesnbsha6+HvZenmj/2bOwdGmFuqISlFy4gpPhE1CeckNES02Sn1eIE0f1qdHxz71m9NpHWxchqHd3YbXN8j1BNLzagnlkWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBWAIBOEJLAJNm1nZJaE7qjNelora+8UVlLYmVNKhZ4/h0RACWQACWQACWQACWQACWQACWQACWQACWQACWQACWQAAhEnznRWPoT7vxj7KLGJV3GqF718Heq9Ofjg/+6F2M16XC+9XJItppNocPnceMl95H/5DpCPCdgOspGWapK0SCakBv/LpuJ37oOwY/hr8AC5kUg38wjtDewz1yCJR9HkNVdp6IVkyiuroGPXp64dXZ48xaV0g+4djwaUbbZ1+IxeiCs3Du5YeCk/fvdtq0VSFobTyODn0RAw5uFNGKSYx8OhQAkJ1dYNa65onQOt6N0Bb9LkIrkeDx7R8g5YMtKL3WMsEQKphFQuDKWOSfTELp1fsRWt+5L0Gn0SB1TYI5WiCN8Bxz0Np4OAV44dAT959d2SrQD96vRuG7wFGiy/8pB79JxMJ3thi21298E72CfFqkF6ESeq1ZgHZPD8bh/hNR/bsLryo0CNYqF0RmHTXss5DJ0HPFXHjPisL+TkNEtgUAGDg4EN0D7j9nWdXaPPnpxhAmIejDOLg/G44jAyehMsM4Qpu+/WvkHj5ttG/Q91uQvv1r/PbJHlEtGdFYhLalECIhaN3b6Dg+AiciZ0JdXgnr30Vo62tqUVdUgro/PPdeq1ajJrcQ5b+mN/KJ5qG0pAK3bxeiIL8EAJCRoX9MvVLpBKWrk7C6QiR4zdSf/8OOG0doz0yZh/Rte0WU/Es4dvQC4t66/9cE3pyzFgAwY+YozIwZLayuSUteeLWFafBqi78RLIEALIEALIEALIEALIEALIEALIEALIEALIEALIEALIEALIEALIEAnN4kAB8JBGAJBGAJBGAJBGAJBGAJBGAJBGAJBGAJBPg/oXCtKqv4W78AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 100x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_B_2[3, ...], '沿深度堆叠，axis = 2，第3页', 24, -24)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "46e002d1-0a4d-4757-b262-191e39c5c540",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4,  5,  6],\n",
       "       [ 7,  8,  9, 10, 11, 12],\n",
       "       [13, 14, 15, 16, 17, 18],\n",
       "       [19, 20, 21, 22, 23, 24]])"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取出A\n",
    "A_B_2[...,0]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c799b8bc-2452-4384-a2a8-8856892ac250",
   "metadata": {},
   "source": [
    "## 重复"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4aa8408f-b95f-44da-b24e-b064e58d6545",
   "metadata": {},
   "source": [
    "### 重复numpy.repeat()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "id": "583c6031-aff1-461a-9fc8-b708ef268f80",
   "metadata": {},
   "outputs": [],
   "source": [
    "a_1D = np.arange(-2,2+1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "fd6d5abe-0996-41d9-a476-b7dcbaba54e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D, 'a_1D，一维', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "ab48e1bd-2548-47b0-9b7b-a7da56c6d89b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-3, -3, -2, -2, -1, -1,  0,  0,  1,  1,  2,  2])"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.repeat(a_1D, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "id": "1d4a2337-15be-452e-a55b-e4239ccf29be",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.repeat(a_1D, 2), 'a_1D，一维，重复两次', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "9911d42c-073a-40af-91f5-f8f7f2121de9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.repeat(a_1D, 3), 'a_1D，一维，重复三次', 3, -3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2d890f8-6aa1-4aa9-bc48-d737af98f4a0",
   "metadata": {},
   "source": [
    "### 瓷砖numpy.tile()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "62ca591c-b317-40b2-aa81-98f85fbd3463",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-2, -1,  0,  1,  2, -2, -1,  0,  1,  2])"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(a_1D, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "7aca2cac-289e-4460-92f6-560b0e6050db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.tile(a_1D, 2), 'a_1D，一维，瓷砖二次', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "9dc65c1c-b289-4e5c-8813-781214116708",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(np.tile(a_1D, 3), 'a_1D，一维，瓷砖三次', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "3403dff6-39f4-4744-9bc7-bf4167085922",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1,  0,  1,  2],\n",
       "       [-3, -2, -1,  0,  1,  2]])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(a_1D, (2,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "9efeedc2-8bd1-4f7d-94d5-6b2d8f0360ce",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.tile(a_1D, (2,1)), 'a_1D，一维，瓷砖(2,1)', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "0d35667d-1379-4822-ba5d-14ca5c94b9f5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1,  0,  1,  2, -3, -2, -1,  0,  1,  2],\n",
       "       [-3, -2, -1,  0,  1,  2, -3, -2, -1,  0,  1,  2]])"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(a_1D, (2,2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "872e7c25-b131-4422-9696-0c8b5ce0ee5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x100 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(np.tile(a_1D, (2,2)), 'a_1D，一维，瓷砖(2,2)', 3, -3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "2c28bec3-4e0e-456b-b8df-1fe6b36212ff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1],\n",
       "       [ 0,  1,  2]])"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = a_1D.reshape(2,3)\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "37a7dc0e-e892-48c1-807b-5679e32a345c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1, -3, -2, -1],\n",
       "       [ 0,  1,  2,  0,  1,  2]])"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(A, 2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "51d5b20a-367c-429b-9da0-0fc56ab85201",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1],\n",
       "       [ 0,  1,  2],\n",
       "       [-3, -2, -1],\n",
       "       [ 0,  1,  2]])"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(A, (2,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "fca1ccbc-2c11-4cc4-adc5-00182f12b226",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-3, -2, -1, -3, -2, -1],\n",
       "       [ 0,  1,  2,  0,  1,  2],\n",
       "       [-3, -2, -1, -3, -2, -1],\n",
       "       [ 0,  1,  2,  0,  1,  2]])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.tile(A, (2,2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "20a15f06-0785-45df-a8b5-9f21baf27f2f",
   "metadata": {},
   "source": [
    "## 分块矩阵"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b60e3f05-2304-4d60-8b7e-03127adf0711",
   "metadata": {},
   "source": [
    "### 合成"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "id": "0c40053e-b136-47b5-a967-c3b01f6c3ead",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0.],\n",
       "       [0., 1.]])"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A = np.eye(2)\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "61ce091f-5d61-4143-8e23-522dfd350dab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-4, -3, -2],\n",
       "       [-1,  0,  1],\n",
       "       [ 2,  3,  4]])"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B = np.arange(-4,4+1).reshape(3,3)\n",
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "id": "6afdcb7e-c238-43f7-a887-688b5f222154",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.,  0.,  0.,  0.,  0.],\n",
       "       [ 0.,  1.,  0.,  0.,  0.],\n",
       "       [ 0.,  0., -4., -3., -2.],\n",
       "       [ 0.,  0., -1.,  0.,  1.],\n",
       "       [ 0.,  0.,  2.,  3.,  4.]])"
      ]
     },
     "execution_count": 166,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "M = np.block([[A,                np.zeros((2, 3))],\n",
    "              [np.zeros((3, 2)), B               ]])\n",
    "M"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "id": "ebe283f2-b48a-499e-bd4b-32de43ca9b79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 300x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(M, '合成矩阵M', 5, -5)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "50ec4456-93d0-4ee1-9c09-c5efe91ab8ed",
   "metadata": {},
   "source": [
    "### 切割"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b75c2dd2-61e8-4a0d-84ed-d31caa2ac986",
   "metadata": {},
   "source": [
    "#### 沿指定轴numpy.split()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "5a144990-e84b-44ee-98dd-928b8c3a3686",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-9, -8, -7, -6, -5, -4, -3, -2, -1,  0,  1,  2,  3,  4,  5,  6,  7,\n",
       "        8])"
      ]
     },
     "execution_count": 188,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_1D = np.arange(-9,9)\n",
    "a_1D"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "e8fbd44a-f966-4b92-ae18-d432dec913b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18"
      ]
     },
     "execution_count": 189,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(a_1D)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "id": "79c4e5dd-c3a8-4cb6-be01-3229a57f879d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_1D(a_1D, 'a_1D，一维', 10, -10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "id": "a6778e1e-ee40-40fb-b1d7-84b088eea01e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([-9, -8, -7, -6, -5, -4]),\n",
       " array([-3, -2, -1,  0,  1,  2]),\n",
       " array([3, 4, 5, 6, 7, 8])]"
      ]
     },
     "execution_count": 191,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_3_splits = np.split(a_1D, 3)\n",
    "a_3_splits"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "id": "a1c159c4-9825-444c-9a0d-0b393bf72aa2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-4, -3, -2])"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_3_splits[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "6e28ada4-94ff-4d4c-8282-a7efb665f718",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1,  0,  1])"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_3_splits[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "id": "3e4ec99d-0b9c-4c9b-b5cf-b24b36e09c21",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 3, 4])"
      ]
     },
     "execution_count": 177,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a_3_splits[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "id": "6b113e71-01eb-4202-ae74-b809a2d528f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([-9, -8, -7]),\n",
       " array([-6, -5]),\n",
       " array([-4]),\n",
       " array([-3, -2, -1,  0]),\n",
       " array([1, 2, 3, 4, 5, 6]),\n",
       " array([7, 8])]"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.split(a_1D, [3, 5, 6, 10, 16])\n",
    "# 指定切割indexes "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "id": "d9868922-7ebd-4011-94f3-e8c582d030dd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-40, -39, -38, -37, -36, -35, -34, -33, -32],\n",
       "       [-31, -30, -29, -28, -27, -26, -25, -24, -23],\n",
       "       [-22, -21, -20, -19, -18, -17, -16, -15, -14],\n",
       "       [-13, -12, -11, -10,  -9,  -8,  -7,  -6,  -5],\n",
       "       [ -4,  -3,  -2,  -1,   0,   1,   2,   3,   4],\n",
       "       [  5,   6,   7,   8,   9,  10,  11,  12,  13],\n",
       "       [ 14,  15,  16,  17,  18,  19,  20,  21,  22],\n",
       "       [ 23,  24,  25,  26,  27,  28,  29,  30,  31],\n",
       "       [ 32,  33,  34,  35,  36,  37,  38,  39,  40]])"
      ]
     },
     "execution_count": 180,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_9_by_9 = np.arange(-40,40+1).reshape(9,9)\n",
    "A_9_by_9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "id": "b23e5f60-c70d-4b92-b7e8-ab59e56a625b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize_2D(A_9_by_9, 'A_9_by_9', 40, -40)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "id": "7fb8c8ae-63be-4c51-b0c6-d58c60e3957d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([[-40, -39, -38, -37, -36, -35, -34, -33, -32],\n",
       "        [-31, -30, -29, -28, -27, -26, -25, -24, -23],\n",
       "        [-22, -21, -20, -19, -18, -17, -16, -15, -14]]),\n",
       " array([[-13, -12, -11, -10,  -9,  -8,  -7,  -6,  -5],\n",
       "        [ -4,  -3,  -2,  -1,   0,   1,   2,   3,   4],\n",
       "        [  5,   6,   7,   8,   9,  10,  11,  12,  13]]),\n",
       " array([[14, 15, 16, 17, 18, 19, 20, 21, 22],\n",
       "        [23, 24, 25, 26, 27, 28, 29, 30, 31],\n",
       "        [32, 33, 34, 35, 36, 37, 38, 39, 40]])]"
      ]
     },
     "execution_count": 183,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3_splits_axis_0 = np.split(A_9_by_9, 3)\n",
    "A_3_splits_axis_0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "id": "2f9ee19a-b330-4463-b9b8-e9c923eaf67a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([[-40, -39, -38],\n",
       "        [-31, -30, -29],\n",
       "        [-22, -21, -20],\n",
       "        [-13, -12, -11],\n",
       "        [ -4,  -3,  -2],\n",
       "        [  5,   6,   7],\n",
       "        [ 14,  15,  16],\n",
       "        [ 23,  24,  25],\n",
       "        [ 32,  33,  34]]),\n",
       " array([[-37, -36, -35],\n",
       "        [-28, -27, -26],\n",
       "        [-19, -18, -17],\n",
       "        [-10,  -9,  -8],\n",
       "        [ -1,   0,   1],\n",
       "        [  8,   9,  10],\n",
       "        [ 17,  18,  19],\n",
       "        [ 26,  27,  28],\n",
       "        [ 35,  36,  37]]),\n",
       " array([[-34, -33, -32],\n",
       "        [-25, -24, -23],\n",
       "        [-16, -15, -14],\n",
       "        [ -7,  -6,  -5],\n",
       "        [  2,   3,   4],\n",
       "        [ 11,  12,  13],\n",
       "        [ 20,  21,  22],\n",
       "        [ 29,  30,  31],\n",
       "        [ 38,  39,  40]])]"
      ]
     },
     "execution_count": 184,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A_3_splits_axis_1 = np.split(A_9_by_9, 3, axis = 1)\n",
    "A_3_splits_axis_1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eec58985-a153-49c7-8027-8c86cdc524b7",
   "metadata": {},
   "source": [
    "#### 沿着水平方向切割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "id": "db825f3f-3563-4c0a-8612-a49f22b26ae9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([[-40, -39, -38],\n",
       "        [-31, -30, -29],\n",
       "        [-22, -21, -20],\n",
       "        [-13, -12, -11],\n",
       "        [ -4,  -3,  -2],\n",
       "        [  5,   6,   7],\n",
       "        [ 14,  15,  16],\n",
       "        [ 23,  24,  25],\n",
       "        [ 32,  33,  34]]),\n",
       " array([[-37, -36, -35],\n",
       "        [-28, -27, -26],\n",
       "        [-19, -18, -17],\n",
       "        [-10,  -9,  -8],\n",
       "        [ -1,   0,   1],\n",
       "        [  8,   9,  10],\n",
       "        [ 17,  18,  19],\n",
       "        [ 26,  27,  28],\n",
       "        [ 35,  36,  37]]),\n",
       " array([[-34, -33, -32],\n",
       "        [-25, -24, -23],\n",
       "        [-16, -15, -14],\n",
       "        [ -7,  -6,  -5],\n",
       "        [  2,   3,   4],\n",
       "        [ 11,  12,  13],\n",
       "        [ 20,  21,  22],\n",
       "        [ 29,  30,  31],\n",
       "        [ 38,  39,  40]])]"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.hsplit(A_9_by_9, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70792002-c157-402b-a63e-502d59433b60",
   "metadata": {},
   "source": [
    "#### 沿着竖直方向切割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "id": "d1b4e212-ccfc-4d76-bc99-7d6f5c0b0d9f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([[-40, -39, -38, -37, -36, -35, -34, -33, -32],\n",
       "        [-31, -30, -29, -28, -27, -26, -25, -24, -23],\n",
       "        [-22, -21, -20, -19, -18, -17, -16, -15, -14]]),\n",
       " array([[-13, -12, -11, -10,  -9,  -8,  -7,  -6,  -5],\n",
       "        [ -4,  -3,  -2,  -1,   0,   1,   2,   3,   4],\n",
       "        [  5,   6,   7,   8,   9,  10,  11,  12,  13]]),\n",
       " array([[14, 15, 16, 17, 18, 19, 20, 21, 22],\n",
       "        [23, 24, 25, 26, 27, 28, 29, 30, 31],\n",
       "        [32, 33, 34, 35, 36, 37, 38, 39, 40]])]"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.vsplit(A_9_by_9, 3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "37fd918a-9b2f-42ed-b348-d9005f1f13c3",
   "metadata": {},
   "source": [
    "## 插入、删除"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c2790b8b-71d4-4046-812c-741c9b78acf5",
   "metadata": {},
   "source": [
    "### 附加numpy.append()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "id": "b5d4c78d-4957-42ec-8180-04f6753f8e7e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5, 6, 7, 8, 9])"
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.append([1, 2, 3], [[4, 5, 6], [7, 8, 9]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "a85b465c-1672-41d2-8174-e398f5807cc8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [4, 5, 6],\n",
       "       [7, 8, 9]])"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.append([[1, 2, 3], [4, 5, 6]], [[7, 8, 9]], axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1720c046-6105-450a-8d80-c3f0e19ef611",
   "metadata": {},
   "source": [
    "### 插入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "08bbdfc0-7104-4b1f-9a48-dacae92e4120",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1],\n",
       "       [2, 2, 2],\n",
       "       [3, 3, 3]])"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([[1, 1], [2, 2], [3, 3]])\n",
    "np.insert(a, [1], [[1],[2],[3]], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "3ef471c6-1ac9-4afe-9e9c-7ef88dd7aa8a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 1, 1],\n",
       "       [2, 2, 2],\n",
       "       [3, 3, 3]])"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.insert(a, 1, [1, 2, 3], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a7bc3652-bb6d-4fbe-94f2-b252a6dcc556",
   "metadata": {},
   "source": [
    "### 删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "57e76903-ed35-4f68-8eca-c4e9c4ef6c88",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1,  2,  3,  4],\n",
       "       [ 9, 10, 11, 12]])"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])\n",
    "np.delete(arr, 1, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "2a76d332-aee9-4e69-b1d7-20b5eac340a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Repo: https://github.com/Visualize-ML\n",
    "# Book 1 Python for Beginners  |  From Basic Arithmetic to Machine Learning\n",
    "# Published and copyrighted by Tsinghua University Press\n",
    "# Beijing, China, 2023"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
